用途:在 OpenMontage 中通过 Azure AI Speech 的 REST 文本转语音接口生成神经旁白/配音音频,作为可选云端 TTS 提供方。
主要能力:高质量多语言神经语音、SSML 韵律控制(rate/pitch)、express-as 风格(如 narration-professional、calm、newscast)、同步 /cognitiveservices/v1 端点(无需令牌交换、Blob 存储或任务轮询)。通过 azure_tts 工具暴露(capability=tts,provider=azure)。
配置:与 azure_stt 共用同一 Speech 资源。在 Azure 门户创建 Speech 资源,复制密钥与区域,然后设置环境变量:
export AZURE_SPEECH_KEY=your_speech_resource_key export AZURE_SPEECH_REGION=eastus
export AZURE_TTS_ENDPOINT=https://... # 可选自定义 TTS 主机
设置 AZURE_SPEECH_KEY 及 REGION 或 TTS_ENDPOINT 后,azure_tts 报告 AVAILABLE。
用法:可经 tts_selector 自动发现路由,或在用户批准后直接调用:
from tools.tool_registry import registry registry.discover() tts = registry._tools["azure_tts"] result = tts.execute({"text": "...", "voice": "andrew", "rate": "-4%", "output_path": "...mp3", "output_format": "mp3"})
不可用或出错时按声明链回退:elevenlabs_tts → openai_tts → piper_tts。
语音:内置别名 andrew、brandon、ava、guy、jenny;也可传任意合法 Azure 语音短名。多语言语音可处理非英语文本,需将 locale 设为与文本语言一致。
参数:rate/pitch 为 SSML 韵律,旁白常略慢(-4% 至 -8%);style 仅对支持的语音生效,不支持时被静默忽略;output_format 可选 mp3 或 wav。固定语音+SSML 重渲染结果基本一致,可单独重生成片段。
适用场景:OpenMontage 中按脚本分段生成旁白,片段便于对齐场景时间并低成本重生成。
限制:一次 execute 对应一个旁白片段;同步端点单请求上限约 10 分钟音频;文本自动做 XML 转义,勿预先转义或包裹 SSML;需先试听首段再批量运行。
费用:Azure 神经 TTS 标准层约每 100 万字符 $16(约每 1 千字符 $0.016),工具会上报 cost_usd;具体费率以 Azure 官方定价为准。其他平台支持、语言细节暂未提供。