Google Distributed Cloud (GDC) 實體隔離方案的 Vertex AI Speech-to-Text 服務可辨識音訊檔案中的語音。Speech-to-Text 會使用預先訓練的 API,將偵測到的音訊轉換為文字轉錄稿。
本頁面說明如何使用 Distributed Cloud 的 Speech-to-Text API,將音訊檔案轉錄成文字。
事前準備
如要轉錄音訊檔案,請向管理員要求必要權限。
要求 IAM 角色
如要使用預設的 Speech-to-Text 模型轉錄音訊,請與 IAM 專案管理員聯絡,要求在專案命名空間中取得 AI 語音開發人員 (ai-speech-developer) 角色。
如要進一步瞭解這個角色,請參閱「準備 IAM 權限」。
如要開始使用 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 as speech 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.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) 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.RecognitionAudio( content=base64.standard_b64decode(content) ) config = speech.RecognitionConfig( encoding=speech.RecognitionConfig.AudioEncoding.ENCODING, sample_rate_hertz=RATE_HERTZ, audio_channel_count=CHANNEL_COUNT, language_code="LANGUAGE_CODE", ) 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:要求中傳送的音訊資料取樣率 (赫茲) (8000-48000),例如16000。LINEAR16、FLAC和MULAW編碼 (包括 WAV 檔案) 必須提供這項資訊。詳情請參閱RecognitionConfig。LANGUAGE_CODE:所提供音訊的語言,以 BCP-47 語言標記表示,例如en-US。查看支援語言清單和對應的語言代碼。CHANNEL_COUNT:輸入音訊資料中的聲道數量 (1-8),例如單聲道音訊為1。LINEAR16、FLAC和MULAW編碼必須設定audio_channel_count。詳情請參閱RecognitionConfig。
儲存 Python 指令碼。
執行 Python 指令碼,轉錄音訊:
python SCRIPT_NAME將
SCRIPT_NAME替換成您為 Python 指令碼指定的名稱,例如speech.py。