ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

终极教程:Live2D Virtual Human for Chatting的Azure TTS集成实战

终极教程:Live2D Virtual Human for Chatting的Azure TTS集成实战 终极教程Live2D Virtual Human for Chatting的Azure TTS集成实战【免费下载链接】Virtual-Human-for-ChattingLive2D Virtual Human for Chatting based on Unity项目地址: https://gitcode.com/gh_mirrors/vi/Virtual-Human-for-ChattingLive2D Virtual Human for Chatting 是一个基于 Unity 的 Live2D 虚拟人对话项目通过集成 Azure TTS文本转语音服务让虚拟人桃花元子能够用带情绪的神经网络语音开口说话并自动驱动口型与表情。本文将带你完成 Azure 语音合成 API 的配置、TTS 合成流程的源码拆解以及口型同步的原理与避坑要点零基础也能快速上手。![Live2D 虚拟人角色立绘展示由 Azure TTS 驱动语音合成的虚拟人形象](https://raw.gitcode.com/gh_mirrors/vi/Virtual-Human-for-Chatting/raw/a64865ac32945f69174aa1f92275d46f15c35ce2/Assets/Live2D Model/桃花酪 封包/桃花酪/TaoHua.png?utm_sourcegitcode_repo_files)认识这个项目会说话、会看人、会互动的虚拟人项目以 Unity 2021.3.0 为运行环境建议分辨率为 1920×1080。它的核心体验链路是你说话/打字 → 大模型生成回复 → Azure TTS 合成带情感的语音 → 虚拟人开口朗读并同步口型除 Azure TTS 外项目还整合了以下能力均出自Assets/Code/AI/目录模块位置作用LM 语言模型Assets/Code/AI/LM/ChatGPT/调用大模型生成对话回复SA 情绪识别Assets/Code/AI/SA/APISpace/识别文本情绪影响朗读风格TTS 语音合成Assets/Code/AI/TTS/Azure/Azure 文本转语音 口型数据Audio2FaceAssets/Code/Scripts/TaoHua/Audio2Face.cs将口型数据驱动到 Live2D 模型为什么选择 Azure TTS四大语音能力一览项目用到的 Azure Speech 能力一共四类全部封装在Assets/Code/AI/TTS/Azure/AzureSpeech.csTTS文本转语音使用SpeechSynthesizer将 SSML 文本合成为 24kHz 原始 PCM 音频流再封装为 Unity 的AudioClip播放Viseme口型数据合成时同步返回每帧 55 个面部 BlendShape 权重这是口型跟着声音动的关键KWR关键词唤醒加载本地模型Assets/Resources/Audios/KwrModel/TaoHua.table喊出唤醒词桃花即可开始对话STT语音转文字麦克风输入转成文字后送入大模型。一套 API Key 同时打通听、说、动三条链路这就是选择 Azure 的原因。快速上手3 步完成 Azure TTS API 配置第 1 步申请 Speech 服务资源在 Azure 平台创建 Cognitive ServicesSpeech资源时Region 请设置为eastasia——项目代码中区域是写死的其他区域会导致鉴权失败。第 2 步把 API Key 填入设置面板项目不提供公用 Key。启动主场景Assets/Scenes/MainScene.unity后在中间设置面板填入 Azure API Key同时可填 ChatGPT、APISpace 的 Key 与虚拟人人设。设置会持久化到本地GameSettings.json由Assets/Code/Scripts/DataBase/GameSettingsEntity.cs负责读写下次启动自动加载。第 3 步选择声音角色设置面板提供两种中文声音对应Assets/Code/Scripts/UI/Middle/GameSettingsEvent.cs中的选项zh-CN-XiaoxiaoNeural温柔女声默认zh-CN-XiaoyiNeural可爱女声源码拆解AzureSpeech.cs 的 TTS 合成流程Assets/Code/AI/TTS/Azure/AzureSpeech.cs是 Azure TTS 集成的核心一次朗读的完整流程如下SsmlGeneration()按情绪、语速、音量、停顿拼接 SSML写入persistentDataPath下的临时文件TurnTextToSpeech()读取 SSML先通知ExpressionController切换表情再发起合成TurnTextToSpeechFromSSML()调用SpeakSsmlAsync合成用AudioDataStream把 PCM 数据逐块填入动态创建的AudioClip播放期间触发VisemeReceived事件把口型数据逐帧压入blendShapeQueue队列播放结束通过OnSpeechStart/OnSpeechEnd事件通知其他模块如动画状态机切换为说话。 项目会在控制台打印首次合成延迟Latency ms方便你评估网络环境下 TTS 的实时性。情感化朗读用 SSML 与建造者模式定制语气项目没有裸写 SSML 字符串而是用建造者模式封装了语音参数位于Assets/Code/AI/TTS/Azure/Entity/TTSEntity.cs承载内容、情绪Style、情绪强度StyleDegree、语速ProsodyRate、音量ProsodyVolume、停顿Break等字段BasicTTSBuilder.cs基础建造者一段文本、默认语气适合快速朗读AdvancedTTSBuilder.cs高级建造者支持逐句指定情绪与节奏适合表现力更强的对白。调用方只需几行代码即可发起一次带情绪的朗读TTSBuilder builder new BasicTTSBuilder(); TTSEntity entity builder.build(我在呢); azureSpeech.TurnTextToSpeech(entity);情绪、语速、音量最终会被SsmlGeneration()转换为mstts:express-as、prosody、break等 SSML 标签交给 Azure 合成——这也是虚拟人说话有感情的秘密。口型同步Azure Viseme 驱动 Live2D 表情TTS 返回的口型数据是 JSON 格式的FrameIndex BlendShapes由Assets/Code/AI/TTS/Azure/Entity/BlendShapeEntity.cs反序列化后进入队列。Audio2Face.cs在LateUpdate()中每帧取出数据映射到 Live2D 参数项目中的三个关键经验值得参考降维映射Azure 每帧给出 55 个面部权重本项目的 Live2D 模型仅 3 个有效口型参数嘴张开、嘴收紧、脸型其余丢弃放大与阈值权重乘以 1.5 倍倍率让动作更明显并设置 0.2 的启动阈值过滤噪声锁定 60 FPSViseme 数据按 60 帧/秒对齐项目需以 60 帧运行才能保证音画同步Assets/Code/Scripts/Common/SetFPS.cs负责帧率设置。你的模型若支持更多面部参数口型效果会显著优于本项目。自由对话模式唤醒 听 答 说Assets/Code/Scripts/TaoHua/FreeChat.cs把整条链路串成状态机流程非常直观阶段行为① 唤醒KWR 监听到关键词桃花先用 TTS 播报我在呢② 聆听STT 持续识别麦克风语音并转成文字③ 思考文字送入ChatScriptAssets/Code/AI/LM/ChatGPT/ChatScript.cs调用大模型④ 开口回复经 TTS 合成播报播放结束后回到聆听状态配合LookTargetController.cs的目光跟随与TouchController.cs的触碰互动就得到了一个完整的能聊天的 Live2D 虚拟人。常见问题避坑清单报 401/鉴权错误检查 Azure 资源 Region 是否为eastasiaAPI Key 是否复制完整合成无声确认已安装 Azure Speech SDK 插件项目内置于Assets/Utils/SpeechSDK/且 API Key 已保存成功重启后设置面板仍显示已填入即为持久化生效口型不同步编辑器下请将帧率锁到 60 FPS并确认播放窗口分辨率按 1920×1080 设置想换人声在设置面板切换 Speaker 下拉项即可无需改代码想改唤醒词需在 Azure 重新训练.table关键词模型并替换Assets/Resources/Audios/KwrModel/下的文件。关键文件索引文件说明Assets/Code/AI/TTS/Azure/AzureSpeech.csAzure TTS/STT/KWR 集成核心Assets/Code/AI/TTS/Azure/Entity/TTSEntity.cs语音参数实体Assets/Code/AI/TTS/Azure/Entity/AdvancedTTSBuilder.cs高级语音建造者Assets/Code/Scripts/TaoHua/Audio2Face.csViseme 口型驱动Assets/Code/Scripts/TaoHua/FreeChat.cs自由对话状态机Assets/Code/Scripts/DataBase/GameSettingsEntity.csAPI Key 持久化Assets/Documentation/doc.md项目技术文档想要获取完整工程可执行git clone https://gitcode.com/gh_mirrors/vi/Virtual-Human-for-Chatting按本文完成 API Key 配置后打开主场景喊一声桃花你的 Live2D 虚拟人就开口与你对话了 【免费下载链接】Virtual-Human-for-ChattingLive2D Virtual Human for Chatting based on Unity项目地址: https://gitcode.com/gh_mirrors/vi/Virtual-Human-for-Chatting创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表