本页介绍了如何在 Google Distributed Cloud (GDC) 空气隔离设备上使用 Speech-to-Text API 将音频文件转写为文字。
GDC 气隙设备上的 Vertex AI Speech-to-Text 服务可识别音频文件中的语音。 Speech-to-Text 使用其预训练的 API 将检测到的音频转换为文字转写。
准备工作
在开始使用 Speech-to-Text API 之前,您必须有一个启用了 Speech-to-Text API 的项目,并且拥有相应的凭据。您还可以安装客户端库,以便调用 API。如需了解详情,请参阅设置语音识别项目。
使用默认模型转写音频
Speech-to-Text 会执行语音识别。您直接在 API 请求中将要识别语音的音频文件作为内容发送。系统会在 API 响应中返回转写后的文本。
发出语音识别请求时,您必须提供 RecognitionConfig
配置对象。此对象会告知 API 如何处理您的音频数据以及您期望获得哪种类型的输出。如果此配置对象中未明确指定模型,Speech-to-Text 会选择默认模型。GDC 气隙设备上的 Speech-to-Text 仅支持默认模型。
如需使用 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
的字符开头。ENCODING
:请求中发送的音频数据的编码,例如LINEAR16
。RATE_HERTZ
:请求中发送的音频数据的采样率(以赫兹为单位),例如16000
。LANGUAGE_CODE
:所提供音频的语言,以 BCP-47 语言标记形式表示。请参阅支持的语言及其各自的语言代码列表。CHANNEL_COUNT
:输入音频数据中的声道数,例如1
。
保存 Python 脚本。
运行 Python 脚本以转写音频:
python SCRIPT_NAME
将
SCRIPT_NAME
替换为您为 Python 脚本指定的名称,例如speech.py
。