使用 Google Cloud Speech API

发布日期:2026-07-07 09:13:05   来源 : 杭州电子商务研究院    浏览量 :19
杭州电子商务研究院 发布日期:2026-07-07 09:13:05  
19

介绍

与应用程序交互的方式有很多种。显然,键盘曾经是、现在仍然是与计算机通信的最常用设备之一。最近(以人类的时代,而不是计算机的时代)鼠标让我们能够超越基于文本的界面。触摸技术在鼠标的基础上进行了改进,让我们能够使用更自然的交互。但是,当人们近距离地相互交流时,我们不会输入我们想说的话或指向它,而是使用口语。那么,计算机又有什么不同呢?

Google Cloud 语音 API

口头对话有两个方面:说话者和听话者。说话者必须发出声音来表达想法,而听话者则解释这些声音来重构想法。这似乎有些言过其实,因为人们每天都在这样做。但计算机并不理解这一点,除非向它们详细解释这些互动,否则它们无法理解。这就是 Google Cloud 中有两个语音 API 的原因。

首先是文本转语音 (TTS) API。此服务将书面(或键入)文本转换为类似于人声的声音。它提供 40 多种语言的 200 多种声音。它支持语音合成标记语言 (SSML),它允许您使用一组“阶段指令”注释书面文本,这些指令可自定义声音以获得更逼真的效果。这包括文本中的停顿以及首字母缩略词和缩写的发音。

另一个 API 是补充,即语音转文本 (STT)。如果 TTS 是说话者,那么 STT 就是听者。STT API 可以转录 125 多种语言的语音。与 TTS API 一样,它可以自定义。一个常见的用例是识别特定行业中的术语。STT API 甚至可以实时转录流式音频。

文本转语音 API

TTS 和 STT API 均支持 Python、Node.js、C#、Java 和其他流行语言的客户端库。它们还都支持 REST API。在本指南中,我将使用 Python 客户端库。

要开始使用 API,您需要在 Cloud Console 项目中启用 Text-to-Speech API。然后,您需要下载服务帐户的凭据并将凭据文件的路径存储在名为GOOGLE_APPLICATION_SETTINGS的环境变量中。我之前的指南《使用 Google Cloud Vision 的计算机视觉》介绍了此过程。有关详细信息,请参阅链接。

要安装 Python 的客户端库,请使用pip

      $ pip install google-cloud-texttospeech
    

最简单的示例从导入texttospeech模块开始。

      from google.cloud import texttospeech
    

接下来创建一个新的TextToSpeechClient

      tts_client = texttospeech.TextToSpeechClient()
    

VoiceSelectionParams配置生成的声音。

      params = texttospeech.VoiceSelectionParams(language_code='en-US')
    

language_code关键字参数是必需的。目前有 40 种不同的语言代码。此处语言代码设置为美国英语。您还可以设置语音名称以使用当前 237 种不同语音中的一种。语音是语言代码和性别的组合。例如,语音“en-GB-Standard-A”使用en-GB语言代码(代表英国英语)和 2 性别(代表女性)。或者,您可以使用ssml_gender关键字参数指定性别

      params = texttospeech.VoiceSelectionParams(language_code='en-US', ssml_gender=texttospeech.SsmlVoiceGender.FEMALE)
    

SsmlVoiceGender类型是四个值之一:SSML_VOICE_GENDER_UNSPECIFIEDMALEFEMALENEUTRAL

AudioConfig将为生成的音频文件选择一种格式。

      audio = texttospeech.AudioConfig(audio_encoding=texttospeech.AudioEncoding.MP3)
    

有效的AudioEncodingMP3LINEAR16OGG_OPUSAUDIO_ENCODING_UNSPECIFIED

要朗读的文本位于SynthesisInput中。

      si = texttospeech.SynthesisInput(text='Peter Piper picked a peck of pickled peppers.')
    

最后,synthesize_speech方法将返回包含生成音频的SynthesizeSpeechResponse 。

      response = tts_client.synthesize_speech(input=si, voice=params, audio_config=audio)
    

响应audio_content属性是可以写入文件的音频数据。确保使用wb模式写入二进制数据。

      f = open('en_us_female.mp3', 'wb')
f.write(response.audio_content)
f.close()
    

您可以从Github下载生成的音频文件 (en_us_female.mp3) 。我还通过将language_code关键字参数设置为en-GB,生成了一个男性声音 (en_us_male.mp3) 和一个带有英国口音的声音 (en_gb_male.mp3)

超细纤维增强塑料

如果我们为文本“我的邮政编码是 20202”生成一个音频文件会发生什么?在 Github 上收听文件 (zip_code_no_ssml.mp3)。

API 将“20202”读作“twenty million two hundred two”。但这不是我们读邮政编码的方式。我们会读出每个数字,例如“two oh two oh two”。我们如何才能让 Google 理解这一点?

答案是 SSML,即语音合成标记语言。它是一组用于标记要生成的文本的标签。以下是 SSML,它会告诉 Google 读出邮政编码中的每个数字。

      ssml = """
<speak>
    My zip code is
    <say-as interpret-as="characters">
    20202
    </say-as>
</speak>
"""
    

通过告诉 Google 将邮政编码解释为字符,它将读取每个数字。要让 Google 使用 SSML,请查看 SynthesisInput并将文本关键字参数更改ssml

      si = texttospeech.SynthesisInput(ssml=ssml)
    

生成的音频文件(zip_code_ssml.mp3)可以在 Github 上找到。

这只是 SSML 支持的一个示例。有关更多详细信息,请参阅文本转语音 API 文档。

语音转文本 API

STT API 的设置与 TTS API 类似。您需要为 Cloud Console 项目启用 Speech-to-Text API,并将服务帐号的凭据存储在名为GOOGLE_APPLICATION_CREDENTIALS的环境变量中。最后,使用pip安装客户端库包。

      $ pip install google-cloud-speech
    

要转录的音频文件需要存储在 API 可以访问的地方。Google Cloud Storage 中的存储桶是一个不错的选择。

首先导入语音包。

      from google.cloud import speech_v1p1beta1 as gcp_speech
    

SpeechClient处理与 API 的所有交互。

      stt_client = gcp_speech.SpeechClient()
    

您还必须告诉 API 音频文件中所使用的语言和采样率。我将使用其中一个生成的文件,其采样率为 24000 赫兹。

      language = 'en-US'
sr = 24000
    

对于 MP3 文件,必须指定编码。编码位于枚举模块中。

      from google.cloud.speech_v1p1beta1 import enums

MP3 = enums.RecognitionConfig.AudioEncoding.MP3
    

识别方法将调用API。

      response = stt_client.recognize(
	{
        'language_code': language,
        'sample_rate_hertz': sr,
        'encoding': MP3
    }, {
        'uri': 'gs://ps-guide-speech/en_us_male.mp3'
    }
)
    

第二本词典告诉 API 要转录的音频文件的位置。响应包含一个备选列表,每个备选列表都包含转录文本置信度分数。

      transcript: "Peter Piper picked a peck of pickled peppers"
confidence: 0.9863739

    

这是用于生成音频文件的相同文本。而且置信度相当高。

结论

不要忘记,Python 并不是客户端库使用的唯一语言。而且始终可以使用任何 HTTP 框架直接调用 API。如果您结合使用 Google Cloud 文本转语音和语音转文本 API,您几乎就足以创建一个虚拟助手。剩下的唯一事情就是解析文本并从中提取含义。Google Cloud Natural API 可以提供这一点。STT API 允许您每月免费转录最多 60 分钟的音频。并且您可以使用 TTS API 每月免费生成最多 400 万个字符的文本的音频文件。谢谢阅读!

以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据