You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Cognitive Services文本转语音:如何停止服务器端音频输出?

解决Azure文本转语音服务器端扬声器输出问题
  • 问题原因:直接使用仅带SpeechConfig的构造函数创建SpeechSynthesizer时,SDK默认会将合成的音频输出到系统扬声器,这在Web服务器环境中会引发不必要的延迟。
  • 解决方案:创建SpeechSynthesizer时,传入AudioConfig.FromNullOutput()配置,明确禁用音频设备输出,仅保留合成后的音频字节数据。

修改后的完整代码:

var speechConfig = SpeechConfig.FromSubscription(speechKey, speechRegion);

speechConfig.SpeechSynthesisVoiceName = "fa-IR-FaridNeural";
speechConfig.OutputFormat = OutputFormat.Detailed;

// 配置空输出,禁用扬声器播放
using (var audioConfig = AudioConfig.FromNullOutput())
using (var speechSynthesizer = new SpeechSynthesizer(speechConfig, audioConfig))
{
    var speechSynthesisResult = await speechSynthesizer.SpeakTextAsync(inp);
    return Convert.ToBase64String(speechSynthesisResult.AudioData);
}

关键说明

  • AudioConfig.FromNullOutput()会让SDK跳过音频设备的输出流程,只生成并返回音频字节数组,完全避免服务器端的音频播放操作。
  • 需将audioConfig纳入using语句块,保证资源被正确释放,避免内存泄漏。

内容的提问来源于stack exchange,提问作者MG123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 21:10:28