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

调用Google Text-to-Speech API时pitch参数不生效问题排查

Google Text-to-Speech API忽略pitch参数的排查与解决

你的代码里pitch参数不生效,主要从这两个方向排查:

1. SSML输入的局部设置会覆盖全局pitch

你用input.ssml传入文本,如果$testo里包含了<prosody>标签设置音调,那audioConfig里的全局pitch会直接被忽略。比如你的SSML内容如果是:

<speak>
  <prosody pitch="0">固定音调的文本</prosody>
</speak>

不管全局设多少pitch,最终都会用SSML里的0值。先检查你的$testo,把里面硬编码的prosody音调设置去掉。

2. 确保pitch参数的格式符合要求

Google TTS的pitch要求是**-20.0到20.0之间的浮点数**,虽然你传的4在范围内,但建议明确传浮点数类型,把"pitch" => 4改成"pitch" => 4.0,避免JSON解析时出现隐性问题。

额外验证步骤

  • 打印生成的请求JSON,确认pitch参数是否正确发送:
echo json_encode($data);

如果输出里pitch是4.0,说明参数构造没问题,继续排查SSML。

  • 你用的en-US-Wavenet-I模型支持音调调整,这点没问题,不用换模型。

调整后的audioConfig代码示例:

'audioConfig' => array(
    'audioEncoding' => "LINEAR16",
    "effectsProfileId" =>  [
      "small-bluetooth-speaker-class-device"
    ],
    "speakingRate" => 1.0,
    "pitch" => 4.0,
 )

优先排查SSML内容,这是最常见的全局pitch失效原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 04:35:06