音频处理指南
本指南涵盖如何设置不同的音频输入方法,以将音频数据馈送到您的唇形同步生成器。请确保在继续之前已完成设置指南。
音频输入处理
您需要设置一种方法来处理音频输入。根据您的音频源,有几种方法可以实现。
- 麦克风(实时)
- 麦克风(回放)
- Text-to-Speech (本地)
- 文本转语音(外部 API)
- 从音频文件/缓冲区
- 流式音频缓冲区
此方法在对着麦克风说话时实时执行唇形同步:
- 标准模型
- 真实感模型
- 支持情绪的真实感模型
- 使用 Runtime Audio Importer 创建一个 Capturable Sound Wave
- 在开始捕获音频之前,绑定到
OnPopulateAudioData
委托 - 在绑定的函数中,从您的 Runtime Viseme Generator 调用
ProcessAudioData
- 开始从麦克风捕获音频
该方法从麦克风捕获音频,然后通过唇形同步进行回放:
- 标准模型
- 真实模型
- 情绪启用的真实模型
- 使用 Runtime Audio Importer 创建一个 Capturable Sound Wave
- 开始从麦克风捕获音频
- 在回放可捕获音波之前,绑定到其
OnGeneratePCMData
委托 - 在绑定的函数中,调用 Runtime Viseme Generator 的
ProcessAudioData
- 常规
- Streaming
此方法使用本地 TTS 从文本合成语音并执行唇形同步:
- 标准模型
- 真实模型
- 情绪启用的真实模型
- 使用 Runtime Text To Speech 从文本生成语音
- 使用 Runtime Audio Importer 导入合成的音频
- 在播放导入的声波之前,绑定到其
OnGeneratePCMData
委托 - 在绑定的函数中,调用来自 Runtime Viseme Generator 的
ProcessAudioData
由于 ONNX 运行时冲突,Runtime Text To Speech 插件提供的本地 TTS 目前不支持常规的真实模型。对于使用常规真实模型的文本转语音,请考虑使用外部 TTS 解决方案或改用标准模型。
- 使用 Runtime Text To Speech 从文本生成语音
- 使用 Runtime Audio Importer 导入合成的音频
- 在播放导入的声波之前,绑定到其
OnGeneratePCMData
委托 - 在绑定的函数中,调用来自 Mood-Enabled Lip Sync Generator 的
ProcessAudioData
- 根据文本内容或期望的情感表达配置情绪设置
带情绪集成的 TTS:
- 在 TTS 生成之前或期间设置适当的情绪
- 调整情绪强度以匹配文本的情感基调
- 对较长文本内容的不同部分使用不同的情绪
此方法使用流式文本转语音合成与实时唇形同步:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- 使用 Runtime Text To Speech 从文本生成流式语音
- 使用 Runtime Audio Importer 导入合成的音频
- 在播放流式声波之前,绑定到其
OnGeneratePCMData
委托 - 在绑定的函数中,调用 Runtime Viseme Generator 的
ProcessAudioData
由于 ONNX 运行时冲突,Runtime Text To Speech 插件提供的本地 TTS 目前不支持常规 Realistic 模型。对于常规 Realistic 模型的文本转语音,请考虑使用外部 TTS 服务或改用 Standard 模型。
- 使用 Runtime Text To Speech 从文本生成流式语音
- 使用 Runtime Audio Importer 导入合成的音频
- 在播放流式声波之前,绑定到其
OnGeneratePCMData
委托 - 在绑定的函数中,调用 Mood-Enabled Lip Sync Generator 的
ProcessAudioData
- 如有需要,在流式传输期间动态调整情绪设置
- 常规
- Streaming
此方法使用 Runtime AI Chatbot Integrator 插件从 AI 服务(OpenAI 或 ElevenLabs)生成合成语音并执行唇形同步:
- 标准模型
- 真实模型
- 情绪启用的真实模型
- 使用 Runtime AI Chatbot Integrator 通过外部 API(OpenAI、ElevenLabs 等)从文本生成语音
- 使用 Runtime Audio Importer 导入合成的音频数据
- 在播放导入的声波之前,绑定到其
OnGeneratePCMData
委托 - 在绑定的函数中,调用来自 Runtime Viseme Generator 的
ProcessAudioData
此方法使用 Runtime AI Chatbot Integrator 插件从 AI 服务(OpenAI 或 ElevenLabs)生成合成的流式语音并执行唇形同步:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- 使用 Runtime AI Chatbot Integrator 连接到流式 TTS API(如 ElevenLabs Streaming API)
- 使用 Runtime Audio Importer 导入合成的音频数据
- 在播放流式声波之前,绑定到其
OnGeneratePCMData
委托 - 在绑定的函数中,调用来自 Runtime Viseme Generator 的
ProcessAudioData
Realistic Model 使用与 Standard Model 相同的音频处理工作流,但使用 RealisticLipSyncGenerator
变量而非 VisemeGenerator
。
此方法使用预录制的音频文件或音频缓冲区进行唇形同步:
- 标准模型
- 真实模型
- 情绪启用的真实模型
- 使用 Runtime Audio Importer 从磁盘或内存导入音频文件
- 在播放导入的声波之前,绑定到其
OnGeneratePCMData
委托 - 在绑定的函数中,调用 Runtime Viseme Generator 的
ProcessAudioData
- 播放导入的声波并观察唇形同步动画
对于来自缓冲区的流式音频数据,您需要:
- 标准模型
- Realistic Model
- Mood-Enabled Realistic Model
- 来自流式源的浮点 PCM 格式音频数据(浮点样本数组)(或使用 Runtime Audio Importer 以支持更多格式)
- 采样率和声道数
- 当音频块可用时,使用这些参数调用 Runtime Viseme Generator 的
ProcessAudioData
Realistic Model 使用与 Standard Model 相同的音频处理工作流,但使用 RealisticLipSyncGenerator
变量替代 VisemeGenerator
。
注意: 使用流式音频源时,请确保适当管理音频播放时序以避免播放失真。更多信息请参阅 Streaming Sound Wave 文档。
处理性能提示
-
块大小:如果您希望以更小的块处理音频数据以获得更响应的唇形同步,请调整
SetNumSamplesPerChunk
函数中的计算。例如,将采样率除以 150(约每 6.67 毫秒流式传输一次)而不是 100(每 10 毫秒流式传输一次)将提供更频繁的唇形同步更新。 -
缓冲区管理:情绪启用模型以 320 样本帧(16kHz 下为 20 毫秒)处理音频。确保您的音频输入时序与此对齐以获得最佳性能。
-
生成器重建:对于 Realistic 模型的可靠操作,在每次希望在一段不活动期后输入新音频数据时,重新创建生成器。
后续步骤
设置好音频处理后,您可能希望: