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

为何SSML的contour标签无法改变音频的Hz值?

AVSpeechUtterance 不支持 SSML 的 contour 标签调整音调

问题详情

我从W3C获取了包含contour标签的SSML代码,但使用AVSpeechUtterance(ssmlRepresentation:)初始化语音 utterance 时,contour标签完全不起作用——音频始终保持同一音调,无法按标签指定的Hz值调整。

环境信息

  • Xcode 15.3
  • iPhone 8(iOS 16.7.5)
  • Swift 语言

使用的SSML代码

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
  <prosody contour="(0%,90Hz) (40%,90Hz) (0%,90Hz)">
    good morning
  </prosody>
</speak>

Swift 实现代码

override func viewDidLoad() {
    super.viewDidLoad()
    
    guard let localUtterance = AVSpeechUtterance(ssmlRepresentation: self.speechSML) else {
        print("SML did not work.")
        return
    }
    self.utterance = localUtterance
    self.utterance.voice = self.voiceNoelle
}

self.synthesizer.speak(self.utterance)

解决方案

原因分析

iOS的AVSpeechSynthesizer对SSML的支持是部分实现,并未完全遵循W3C的SSML 1.1标准。其中prosody标签的contour属性属于未被支持的特性,即使传入符合标准的SSML,语音合成引擎也会直接忽略该属性。

替代实现方式

如果需要调整语音音调,可以使用iOS原生支持的方案:

  1. 全局调整音调(pitchMultiplier)
    通过AVSpeechUtterance的pitchMultiplier属性直接设置整体音调,取值范围为0.5(低音)到2.0(高音),默认值为1.0:

    self.utterance.pitchMultiplier = 0.8 // 降低音调
    // 或
    self.utterance.pitchMultiplier = 1.5 // 升高音调
    
  2. 分段调整音调
    若需要对文本不同部分设置不同音调,可将文本拆分为多个AVSpeechUtterance实例,分别配置pitchMultiplier后依次播放:

    let part1 = AVSpeechUtterance(string: "good")
    part1.pitchMultiplier = 0.7
    part1.voice = self.voiceNoelle
    
    let part2 = AVSpeechUtterance(string: " morning")
    part2.pitchMultiplier = 1.2
    part2.voice = self.voiceNoelle
    
    synthesizer.speak(part1)
    synthesizer.speak(part2)
    

注意事项

  • iOS仅支持SSML的部分核心标签,比如speak、prosody(仅支持rate、volume、pitch属性)、break等,具体支持范围以Apple官方文档为准。
  • 不同语音包(如你使用的Noelle)对音调调整的响应存在差异,建议根据实际需求测试参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 03:37:18