问题描述
我正在关注 Google Cloud API Text-to-Speech Python 教程。我想知道是否有办法返回音素及其持续时间,这是生成解释语音的中间步骤。那可能吗?如果是这样,您能否请我参考文档,并希望有一些示例代码可以做到这一点。我搜索并找不到任何已经回答了我的问题的内容。
谢谢! gma
解决方法
提及从 Google 云 API Text-to-Speech 获取音素的所有步骤。在第 3 部分中,您可以找到示例代码。 您可以按照以下步骤操作:
[第 1 部分]
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保为您的 Cloud 项目启用计费
-
启用 Cloud Text-to-Speech API。
-
创建一个服务帐户: 一种。在 Cloud Console 中,转到创建服务帐号页面。 湾选择一个项目。 C。在服务帐户名称字段中,输入名称。 Cloud Console 填写 基于此名称的服务帐户 ID 字段。 d.单击完成以完成服务帐户的创建。 不要关闭浏览器窗口。您将在下一步中使用它。
-
创建服务帐号密钥: 一种。在 Cloud Console 中,点击服务帐号的电子邮件地址 你创造的。 湾单击键。 C。单击添加密钥,然后单击创建新密钥。 d.单击创建。 JSON 密钥文件将下载到您的计算机。 e.点击关闭。
-
将环境变量 GOOGLE_APPLICATION_CREDENTIALS 设置为包含您的服务帐号密钥的 JSON 文件的路径。此变量仅适用于您当前的 shell 会话,因此如果您打开一个新会话,请再次设置该变量。
示例 1.Linux 或 macOS
export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"
将 KEY_PATH 替换为包含您的服务帐号密钥的 JSON 文件的路径。
例如:-
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
示例 2.Windows
对于 PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"
将 KEY_PATH 替换为包含您的服务的 JSON 文件的路径 帐户密钥。
例如:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
对于命令提示符:
set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH
将 KEY_PATH 替换为包含您的服务的 JSON 文件的路径 帐户密钥。
-
安装并初始化云 SDK。
[第 2 部分]
安装客户端库
pip install --upgrade google-cloud-texttospeech
[第 3 部分]
创建音频数据
现在您可以使用 Text-to-Speech 创建合成人类语音的音频文件。使用以下代码向 Text-to-Speech API 发送合成请求。
from google.cloud import texttospeech
client = texttospeech.TextToSpeechClient()
synthesis_input = texttospeech.SynthesisInput(text="Hello,World!")
voice = texttospeech.VoiceSelectionParams(
language_code="en-US",ssml_gender=texttospeech.SsmlVoiceGender.NEUTRAL
)
audio_config = texttospeech.AudioConfig(
audio_encoding=texttospeech.AudioEncoding.MP3
)
response = client.synthesize_speech(
input=synthesis_input,voice=voice,audio_config=audio_config
)
with open("output.mp3","wb") as out:
out.write(response.audio_content)
print('Audio content written to file "output.mp3"')
如果您遇到任何问题,请参考以下链接:
,感谢您的回复@Akshansha。 我知道如何创建合成人类语音的音频文件。我的问题更多是关于如何获取元数据,如音素或视位。例如,通过 Amazon Polly API,您可以在使用 Text-to-Speech 时获取此类数据:
{"time":0,"type":"sentence","start":0,"end":23,"value":"Mary had a little lamb."}
{"time":6,"type":"word","end":4,"value":"Mary"}
{"time":6,"type":"viseme","value":"p"}
{"time":73,"value":"E"}
{"time":180,"value":"r"}
{"time":292,"value":"i"}
{"time":373,"start":5,"end":8,"value":"had"}
{"time":373,"value":"k"}
{"time":460,"value":"a"}
{"time":521,"value":"t"}
{"time":604,"start":9,"end":10,"value":"a"}
{"time":604,"value":"@"}
{"time":643,"start":11,"end":17,"value":"little"}
{"time":643,"value":"t"}
{"time":739,"value":"i"}
{"time":769,"value":"t"}
{"time":799,"value":"t"}
{"time":882,"start":18,"end":22,"value":"lamb"}
{"time":882,"value":"t"}
{"time":964,"value":"a"}
{"time":1082,"value":"p"}
我在问我们是否可以使用 Google Cloud API TTS 获得类似的结果?
谢谢, gma