---
title: Microsoft Foundry Tools - Voice Liveで口パクさせてみた
tags:  #xrmtg #microsoftfoundry #foundrytools #unity  
author: [Miyaura](https://image.docswell.com/user/m-taka596)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/P7R916NZE9.jpg?width=480
description: 【大阪-ハイブリッド開催】XRミーティング 2026/07/15 #Xグラス #XRMTG( https://osaka-driven-dev.connpass.com/event/397692/ )登壇資料。 Microsoft Foundry ToolsのVoice Live APIの音声会話の応答情報を使ってUnityちゃんの口パクを発話と同期する話。 Foudry ToolsのVoice Live APIは「Viseme」という「人が特定の音を発音するときの視覚的な口の形や顔の表情のパターン」を応答音声のタイミングに合わせて返すことができます。これを利用するとオリジナルのアバターに音声に合わせた口パクをさせることができるので、実際にうまくいくか調査した話。
published: July 15, 26
canonical: https://image.docswell.com/s/m-taka596/KN7G9G-XRMTG-Foundry-VoiceLive-lipsync-Unity-20260715
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/P7R916NZE9.jpg)

Microsoft Foundry - Tools
Voice Live で口パクさせてみた
2026/07
XR ミーティング
@takabrz1
Takahiro Miyaura


# Page. 2

![Page Image](https://bcdn.docswell.com/page/PJXQYMN17X.jpg)

宮浦 恭弘
(Miyaura Takahiro)
Microsoft MVP for Mixed Reality 2018
Microsoft MVP for M365 2025
- 2026
XR は趣味です.AI 系も最近始めました。
- 202 5
大阪駆動開発コミュニティに生息
HoloLens 日本販売してからxR 系技術に取組む
新しい技術や、MRに使えそうな技術を調べる
技術Tips :
https://qiita.com/miyaura
https://zenn.dev/miyaura
最近興味があって取り組んでいるもの
○ AndroidXR
○ 新しいガジェット( MiRZA,Galaxy
XR,etc …)
○ Microsoft Foundry,
生成AI
@takabrz1
※よかったらこれを機にお知り合いになってください


# Page. 3

![Page Image](https://bcdn.docswell.com/page/3JK93GNMJD.jpg)

今日も何度か話しているFoundry Toolsの
音声系の話
2026/07/15
© 2026 Takahiro Miyaura
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/LE3WGNV2E5.jpg)

Microsoft Foundryの話
2026/07/15
© 2026 Takahiro Miyaura
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/8EDK1W867G.jpg)

Microsoft Foundry
The AI app and agent factory
Azure 上で提供されるAI エージェントの開発、運用を管理するプラットフォーム
Models
Agent Service
IQ
Tools
Machine Learning
Control Plane
Cloud
Edge
Security, compliance, and governance
引用: Microsoft.Let
your agentic apps talk with Azure
Speech.Microsoft
Ignite 2025.2025,11,p.3.https://ignite.microsoft.com/
en - US/sessions/BRK198,
（参照 2026 - 01 - 21 ）.


# Page. 6

![Page Image](https://bcdn.docswell.com/page/V7PKQ9WZJ8.jpg)

Foundry Tools – Voice Live
AIモデルやエージェントをリアルタイム音声会話で利用
日常対話はモデル、複雑タスクはAgent に委任
文章（プロンプト）を送って
何らかの処理をしてもらう
Foundry Agent
Service
Agent 呼出
応答
ユーザ
応答
モデル呼出
2026/07/15
© 2026 Takahiro Miyaura
Foundry Models
Phi4,…
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/2JVV5M8MJQ.jpg)

Foundry Tools – Voice Live
AIモデルやエージェントをリアルタイム音声会話で利用
日常対話はモデル、複雑タスクはAgent に委任
Agent 呼出
Microsoft Foundry
でエージェントを定義
音声
ユーザ
Voice Live
Foundry Agent
Service
Agent 呼出
SDK(API)
応答
リアルタイムAI モデル
基本対話を担当
応答
音声応答
モデル呼出
モデル呼出時
プロンプト、ツール、MCPの
設定も渡せる
2026/07/15
© 2026 Takahiro Miyaura
Foundry Models
Phi4,…
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/5EGL6G5XJL.jpg)

Foundry Tools – Voice Live APIとは
Foundry のモデルやエージェントを利用したリアルタイム音声API
◯ 最近は.NET, Python SDK
でも提供
◯ Preview の最新を使いたい場合はAPI を利用
GA｜2026 - 04 - 10 で正式提供
連携
Preview ｜2026 - 06 - 01 - preview
新機能
○ ・・・
○ Hosted agent invocation events
（ホスト型エージェント呼出）
○ WebSocket アバター（同一WSに映像配信）
○ Streaming text input
（テキスト増分入力）
○ WebRTC 音声接続
○ parallel_tool_calls
○ ・・・
エージェント呼出が正式対応、
OpenTelemetry によるトークンなどの監視が可能に
Hosted Agents
、Websocket 通信でアバターが利用可能に
活用の幅が広がる機能を先行して提供
○ Foundry Agent
○ MCP サーバ統合
○ Proactive messages
（先読み発話）
○ Auto - truncation
（履歴自動切詰め）
○ OpenTelemetry
トレース（新規GA）
2026/07/15
© 2026 Takahiro Miyaura
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/4JQY4XZ57P.jpg)

viseme で Unityちゃんを口パクさせる
Voice Live API
2026/07/15
の viseme_id
© 2026 Takahiro Miyaura
を母音 blendshape
に割当てる
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/K74WQ63VE1.jpg)

結論：Unityちゃんの口パクは実現可能
Voice Live API
は viseme 出力を正式サポート
（API 版 2026 - 01 - 01 - preview ）
○
ただし Voice Live
が返すのは viseme_id
○
blend shapes / SVG
は返らない
→ 母音 blendshape
へ 自前でマッピング が必要
○
2026/07/15
viseme_id
（0〜21 の整数）だけ
自体はロケール制限なし（日本語 TTS でも返ってくる）
© 2026 Takahiro Miyaura
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LJ1YPV14EG.jpg)

デモ — Unityちゃんが実際に口パク
会話に合わせて口がリアルタイムに動く様子をデモ
2026/07/15
© 2026 Takahiro Miyaura
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/GJWG2L8Z72.jpg)

viseme とは — 音を「口の形」で表す単位
viseme （ビゼーム）＝ 音素を「顔と口の形」で表した視覚的な単位
話すときの唇・あご・舌の位置（口形状）を表す
22 種類
多対1
3 つの出力
Azure が定義する viseme
の数。各 viseme が特定の音
素グループの口形状を表す
音素と viseme は1対1でな
い。s と z のように口の形が同
じ音は同じ viseme
viseme ID （整数）／ SVG
（2D・en - US）／ blend
shapes （3D・55 値/ フレーム）
テキスト / SSML
→ 音素列に分解 → viseme
生成 → viseme ID
出典：Microsoft Learn
2026/07/15
© 2026 Takahiro Miyaura
＋ audio offset
– Get facial position with viseme
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/4EZLDM8L73.jpg)

アバター側の Lipsync — 母音 blendshape で口を動かす
Unity ちゃんの顔メッシュ（SkinnedMeshRenderer
）は MTH_A / I / U / E / O
の母
音 blendshape
を持つ。各 weight （0〜100 ）を時系列で動かすと口形状が変わる。
あ
い
う
え
お
MTH_A
MTH_I
MTH_U
MTH_E
MTH_O
音の並びに合わせて weight
2026/07/15
を 0 → 100 に切り替える ＝ 口パク。隣接する口形状を Lerp
間するとなめらかに動く。
© 2026 Takahiro Miyaura
で補
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/Y76W1NPM7V.jpg)

Foundry Tools の会話処理フロー — Voice Live
(WebSocket)
ユーザー音声（マイク入力）
Voice Live API
｜ WebSocket ・全二重リアルタイム
応答メッセージ
response.animation_viseme.delta
応答メッセージ
response.audio.delta
AudioSource
2026/07/15
で PCM 音声を再生
viseme_id + audio_offset_ms
blendshape
へ適用
© 2026 Takahiro Miyaura
を
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/G75M45KQ74.jpg)

viseme を有効化
session.update の animation.outputs
{
&quot;session&quot;
:{
&quot;voice&quot;
:{
&quot;name&quot; : &quot;ja - JP - NanamiNeural&quot;
,
&quot;type&quot; : &quot;azure - standard&quot;
},
&quot;animation&quot;
:{
&quot;outputs&quot;
: [ &quot;viseme_id&quot;
]}
}
}
は現状 viseme_id
のみ対応
○
animation.outputs
○
viseme_id
はロケール制限なし（日本語TTS でも返る）。blend shapes
SVG は en - US のみ
2026/07/15
© 2026 Takahiro Miyaura
は en - US / zh
- CN、
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/9J29VNWWER.jpg)

応答情報の詳細
response.animation_viseme.delta
{
&quot;type&quot; : &quot;response.animation_viseme.delta&quot;
&quot;audio_offset_ms&quot;
&quot;viseme_id&quot;
,
: 455 ,
: 20
}
audio_offset_ms
音声先頭からの経過ミリ秒。再生位置と同期させ
るタイミング情報
viseme_id
0〜21 の口形状ID 。母音 blendshape
マッピングする対象
ストリーム完了時に response.animation_viseme.done
2026/07/15
© 2026 Takahiro Miyaura
へ
が届く
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/DEY43PL9JM.jpg)

viseme を使ういくつかの方法
Voice Live viseme
SpeechSynthesizer
（リアルタイム型）
（バッチ型）
○
出力：viseme_id
○
体験：低遅延・全二重エージェント
○
Unity ：WebSocket
○
口パク：自前マッピングが必要
○
有効化：session.update
animation.outputs
SpeechSynthesizer
イベントで viseme_id
2026/07/15
のみ
を自前実装
の
○
出力：viseme_id / SVG / blend
shapes （52 係数）
○
体験：TTS 都度・非対話
○
Unity ：Speech SDK for Unity
○
口パク：blendshape
○
有効化：SSML の mstts:viseme
が使える
直取りで楽
とは：Azure Speech SDK
の従来型 TTS 。テキストを音声に変換し、VisemeReceived
・SVG ・blend shapes
を直接取得できる（対話用ではなく都度合成）
© 2026 Takahiro Miyaura
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/VJNYV54D78.jpg)

viseme の割り当て — 22種を「母音6種」に寄せる
Azure の viseme は 0〜21 の22 種。日本語の口形状はほぼ「あ・い・う・え・お＋閉じ」で捉えられる
ので、22 種を母音6グループに寄せて Unity ちゃんの MTH_A / I / U / E / O
へ割り当てる。
2026/07/15
母音
Unity ちゃん
あ
MTH_A
1, 2, 9, 11, 12, 17
い
MTH_I
6, 15, 16
i, ɪ, s, z, ʃ, tʃ
う
MTH_U
7, 13, 18
u, w, ɹ, f, v
え
MTH_E
4, 5, 14, 19, 20
お
MTH_O
3, 8, 10
閉じ
すべて 0
0, 21
viseme_id
（22 種の割り当て）
© 2026 Takahiro Miyaura
代表音素
æ, ɑ, aʊ, aɪ, h, ð
ɛ, ʊ, ɝ, l, d/t/n, k/g
ɔ, o, ɔɪ
無音, p, b, m
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/YE9P6YQ8J3.jpg)

Unity 実装フロー — 音声と viseme を同期して口を動かす
void
Update () {
double
ms = (
var
v=
PeekVisemeAt
var
(shape, target) = map[v.visemeId];
foreach
( var
skinned.
AudioSettings
s in
.dspTime
- startDsp) *
1000.0 ;
// 現在時刻の viseme
(ms);
// 22→ 母音マップ
mouthShapes)
SetBlendShapeWeight
(idx[s],
Mathf . Lerp (cur[s], s == shape ? target :
Time .deltaTime *
0f ,
12f ));
}
1 audio_offset_ms
ングを同期
2026/07/15
で音声再生位置とタイミ
2 viseme
防止
© 2026 Takahiro Miyaura
間を Mathf.Lerp
で補間しカクつき
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/GE8DZ6GZED.jpg)

大阪駆動開発
関西を中心に、IT系のおもしろそうなことを
楽しんでやるコミュニティ


