Google Distributed Cloud (GDC) 气隙环境中的 Vertex AI Speech-to-Text 服务可识别音频文件中的语音。 Speech-to-Text 使用其预训练的 API 将检测到的音频转换为文字转写。
Speech-to-Text 包含 Chirp,这是一种先进的语音模型,使用数百万小时的音频数据和数十亿个文本句子训练而成。这种模型与侧重于大量特定于语言的监督数据的传统语音识别技术形成鲜明对比。这些技术可以为用户提高识别和转录能力,从而更好地理解口语和口音。
本页面介绍了如何使用 Distributed Cloud 上的 Speech-to-Text API 将音频文件转写为文字。
准备工作
在开始使用 Speech-to-Text API 之前,您必须有一个启用了 Speech-to-Text API 的项目,并且拥有相应的凭据。您还可以安装客户端库,以便调用 API。如需了解详情,请参阅设置语音识别项目。
使用默认模型转写音频
Speech-to-Text 会执行语音识别。您直接在 API 请求中将要识别语音的音频文件作为内容发送。系统会在 API 响应中返回转写后的文本。
发出语音识别请求时,您必须提供 RecognitionConfig
配置对象。此对象会告知 API 如何处理您的音频数据以及您期望获得哪种类型的输出。如果此配置对象中未明确指定模型,Speech-to-Text 会选择默认模型。
如需了解详情,请参阅 Speech
API 文档。
以下示例使用默认的 Speech-to-Text 模型转写音频文件中的语音:
Python
如需使用 Python 脚本中的 Speech-to-Text 服务转写音频文件中的语音,请按以下步骤操作:
将以下代码添加到您创建的 Python 脚本中:
import base64 from google.cloud import speech_v1p1beta1 import google.auth from google.auth.transport import requests from google.api_core.client_options import ClientOptions audience="https://ENDPOINT:443" api_endpoint="ENDPOINT:443" def get_client(creds): opts = ClientOptions(api_endpoint=api_endpoint) return speech_v1p1beta1.SpeechClient(credentials=creds, client_options=opts) def main(): creds = None try: creds, project_id = google.auth.default() creds = creds.with_gdch_audience(audience) req = requests.Request() creds.refresh(req) print("Got token: ") print(creds.token) except Exception as e: print("Caught exception" + str(e)) raise e return creds def speech_func(creds): tc = get_client(creds) content="BASE64_ENCODED_AUDIO" audio = speech_v1p1beta1.RecognitionAudio() audio.content = base64.standard_b64decode(content) config = speech_v1p1beta1.RecognitionConfig() config.encoding= speech_v1p1beta1.RecognitionConfig.AudioEncoding.ENCODING config.sample_rate_hertz=RATE_HERTZ config.language_code="LANGUAGE_CODE" config.audio_channel_count=CHANNEL_COUNT metadata = [("x-goog-user-project", "projects/PROJECT_ID")] resp = tc.recognize(config=config, audio=audio, metadata=metadata) print(resp) if __name__=="__main__": creds = main() speech_func(creds)
替换以下内容:
ENDPOINT
:您组织使用的 Speech-to-Text 端点。如需了解详情,请查看服务状态和端点。PROJECT_ID
:您的项目 ID。BASE64_ENCODED_AUDIO
:以 Base64 表示法编码的音频数据字节。此字符串以类似于ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv
的字符开头。如需了解详情,请参阅RecognitionAudio
。ENCODING
:请求中发送的音频数据的编码,例如LINEAR16
。如需了解详情,请参阅AudioEncoding
。RATE_HERTZ
:请求中发送的音频数据的采样率(以赫兹为单位),例如16000
。如需了解详情,请参阅RecognitionConfig
。LANGUAGE_CODE
:所提供音频的语言,以 BCP-47 语言标记形式表示。请参阅支持的语言及其各自的语言代码列表。CHANNEL_COUNT
:输入音频数据中的声道数,例如1
。如需了解详情,请参阅RecognitionConfig
。
保存 Python 脚本。
运行 Python 脚本以转写音频:
python SCRIPT_NAME
将
SCRIPT_NAME
替换为您为 Python 脚本指定的名称,例如speech.py
。
使用 Chirp 转写音频
与 Speech-to-Text 默认模型类似,您必须在发出语音识别请求时提供 RecognitionConfig
配置对象。如要使用 Chirp,您必须在此配置对象中通过在 model
字段中设置值 chirp
来明确指定此模型。
以下示例使用 Chirp 模型转写音频文件中的语音:
Python
如需使用 Python 脚本通过 Chirp 转写音频文件中的语音,请按以下步骤操作:
将以下代码添加到您创建的 Python 脚本中:
import base64 # Import the client library. from google.cloud import speech_v1p1beta1 from google.cloud.speech_v1p1beta1.services.speech import client from google.api_core.client_options import ClientOptions api_endpoint="ENDPOINT:443" def get_client(creds): opts = ClientOptions(api_endpoint=api_endpoint) return client.SpeechClient(credentials=creds, client_options=opts) # Specify the audio to transcribe. tc = get_client(creds) content = "BASE64_ENCODED_AUDIO" audio = speech_v1p1beta1.RecognitionAudio() audio.content = base64.standard_b64decode(content) config = speech_v1p1beta1.RecognitionConfig( encoding=speech_v1p1beta1.RecognitionConfig.AudioEncoding.ENCODING, sample_rate_hertz=RATE_HERTZ, audio_channel_count=CHANNEL_COUNT, language_code="LANGUAGE_CODE", model="chirp" ) # Detect speech in the audio file. metadata = (("x-goog-user-project", "projects/PROJECT_ID"),) response = tc.recognize(config=config, audio=audio, metadata=metadata) for result in response.results: print("Transcript: {}".format(result.alternatives[0].transcript))
替换以下内容:
ENDPOINT
:您组织使用的 Speech-to-Text 端点。如需了解详情,请查看服务状态和端点。BASE64_ENCODED_AUDIO
:以 Base64 表示法编码的音频数据字节。此字符串以类似于ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv
的字符开头。如需了解详情,请参阅RecognitionAudio
。ENCODING
:请求中发送的音频数据的编码,例如LINEAR16
。如需了解详情,请参阅AudioEncoding
。RATE_HERTZ
:请求中发送的音频数据的采样率(以赫兹为单位),例如16000
。如需了解详情,请参阅RecognitionConfig
。CHANNEL_COUNT
:输入音频数据中的声道数,例如1
。如需了解详情,请参阅RecognitionConfig
。LANGUAGE_CODE
:所提供音频的语言,以 BCP-47 语言标记形式表示。请参阅支持的语言及其各自的语言代码列表。PROJECT_ID
:您的项目 ID。
保存 Python 脚本。
运行 Python 脚本以转写音频:
python SCRIPT_NAME
将
SCRIPT_NAME
替换为您为 Python 脚本指定的名称,例如speech.py
。