如何从 Google Cloud API Text-to-Speech 获取音素

问题描述

我正在关注 Google Cloud API Text-to-Speech Python 教程。我想知道是否有办法返回音素及其持续时间,这是生成解释语音的中间步骤。那可能吗?如果是这样,您能否请我参考文档,并希望有一些示例代码可以做到这一点。我搜索并找不到任何已经回答了我的问题的内容

谢谢! gma

解决方法

提及从 Google 云 API Text-to-Speech 获取音素的所有步骤。在第 3 部分中,您可以找到示例代码。 您可以按照以下步骤操作:

[第 1 部分]

  1. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。

  2. 确保为您的 Cloud 项目启用计费

  3. 启用 Cloud Text-to-Speech API。

  4. 创建一个服务帐户: 一种。在 Cloud Console 中,转到创建服务帐号页面。 湾选择一个项目。 C。在服务帐户名称字段中,输入名称。 Cloud Console 填写 基于此名称的服务帐户 ID 字段。 d.单击完成以完成服务帐户的创建。 不要关闭浏览器窗口。您将在下一步中使用它。

  5. 创建服务帐号密钥: 一种。在 Cloud Console 中,点击服务帐号的电子邮件地址 你创造的。 湾单击键。 C。单击添加密钥,然后单击创建新密钥。 d.单击创建。 JSON 密钥文件将下载到您的计算机。 e.点击关闭。

  6. 将环境变量 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 文件的路径 帐户密钥。

  7. 安装并初始化云 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"')

如果您遇到任何问题,请参考以下链接:

https://cloud.google.com/text-to-speech/docs/quickstart-client-libraries#client-libraries-install-python

,

感谢您的回复@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