我在php中调用谷歌文本到语音的其余API。
我这样打电话:
$url = "https://texttospeech.googleapis.com/v1/text:synthesize?key=".$key;
$data = array(
'input' => array(
'ssml' => $testo
),
'voice' => array(
"languageCode" => "en-us",
"name" => "en-US-Wavenet-I",
"ssmlGender" => "MALE"
),
'audioConfig' => array(
'audioEncoding' => "LINEAR16",
"effectsProfileId" => [
"small-bluetooth-speaker-class-device"
],
"speakingRate" => 1,
"pitch" => 4,
)
);
$options = array(
'http' => array(
'header' => "Content-Type: application/json\r\n",
'method' => 'POST',
'content' => json_encode($data)
)
);
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
if ($response === false) {
} else {
$response_data = json_decode($response, true);
......
}
响应似乎忽略了音高值。我已经尝试将它作为整数和字符串传递,但结果没有改变。我做错了什么?
谢谢
2条答案
按热度按时间tkclm6bt1#
如果有人有同样的问题,我找到了一个可能的解决方案:
$testo = '<speak> text I need audio </speak>';
我添加了一个内部韵律标签来说话:
我得到了想要的结果。
f3temu5u2#
如果你使用谷歌SSML的球场。您可以使用x-low/low/medium/high/x-high中的值。这个例子是有效的