語音辨識
小提示
有關更多詳細信息,請參閱 文本和圖像 選項卡!
語音辨識,通常稱為 語音轉文字(STT),是一種人工智慧能力,使應用程式和代理能夠回應語音輸入。 語音辨識會將口語轉換成資料,通常是文字。 語音轉文字軟體通常使用多種模型,包括:
- 一種將音訊轉換成音素(特定聲音的表示)的 聲學 模型。
- 一個將音素映射到單字的 語言 模型。
AI 語音識別的詞彙會被轉換成文字。 你可以將文字用於多種用途,例如提供隱藏字幕、建立通話逐字稿、自動化語音輸入等。
Azure 語音 - 語音轉文字
Azure Voice 包含語音 轉文字 API ,可用來處理麥克風或音訊檔案的語音輸入。
備註
API(應用程式介面)是一組規則與端點,允許一個軟體應用程式與另一個應用程式溝通並使用其功能或資料。
Microsoft Foundry 是一個 Microsoft 平台,協助開發者透過將模型、工具、資料與服務整合於一處,來建置、測試及部署 AI 應用程式與代理。
在 全新的 Microsoft Foundry 入口網站中,我們可以探索 Azure Speech 在 Foundry 遊樂場中的語音轉文字功能。 要進入遊樂場,先到 建置 頁面,再到 模型,再到 AI服務 標籤。在分頁中,你可以找到可供測試的 AI 服務,包括 Azure 語音 - 語音轉文字。
在遊樂場裡,你可以上傳音訊檔或錄下自己說話的過程。 Azure Speech 會轉錄所說的內容,讓你感受應用程式對音訊輸入的反應。
Foundry 入口網站的遊樂場是嘗試 Azure Speech 的絕佳場所,但要在應用程式中使用語音轉文字,我們需要寫一些程式碼。
使用 Azure 語音轉文字 SDK
Azure 語音轉文字 SDK 是一個用戶端函式庫,讓應用程式能將語音音訊轉換成書面文字。 語音轉文字 SDK 旨在讓語音辨識更容易加入應用程式。
備註
用戶端函式庫是一組現成的程式碼,開發者可以在應用程式中使用,方便地與服務或 API 溝通。
SDK 使您的應用程式能夠:
- 從麥克風、音訊檔案或音訊串流擷取或傳送音訊
- 請安全地將音訊傳送到 Azure Speech
- 可近乎即時或處理完成後接收轉錄文字
SDK 處理網路、認證、音訊串流及回應解析,讓開發者能專注於應用程式邏輯。
開發應用程式
語音轉文字 SDK 通常用於應用程式的客戶端或服務層。 SDK 作為應用程式碼與 Azure Speech 服務之間的橋樑。
要使用 Azure Speech Python SDK,你需要安裝相容版本的 Python 和 Azure Speech Python SDK。
Python SDK 可透過以下方式安裝於 Visual Studio Code 終端機 中:
pip install azure-cognitiveservices-speech
備註
應用程式程式碼由 程式碼編輯器撰寫,例如 Visual Studio Code。 程式碼編輯器的 終端機 是編輯器內建的命令列視窗,你可以在不離開開發環境的情況下執行指令。
要使用 Azure Speech,你也需要建立一個 Foundry 資源。 Foundry 資源端點和金鑰用於程式碼中來驗證連線。
安裝 Python SDK 並建立 Foundry 資源後,你就可以建立並執行你的程式。 請參考以下 Python 程式碼。 當你執行它時:
- 你的應用程式初始化語音 SDK:提供端點與認證(金鑰或 Microsoft Entra ID)
- 音訊被擷取或載入:麥克風輸入或音訊檔案/串流
- 音訊會傳送到 Azure Speech:SDK 會安全地串流或上傳音訊
- 語音辨識運行於雲端:Azure 的語音模型分析音訊
- 回傳文字結果:您的應用程式會收到已識別的文字及可選的元資料
import azure.cognitiveservices.speech as speechsdk
# Set up the speech config using resource endpoint
endpoint_url = "ENDPOINT"
speech_key = "FOUNDRY_KEY"
speech_config = speechsdk.SpeechConfig(
subscription=speech_key,
endpoint=endpoint_url
)
# Create a recognizer with microphone input
audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True)
speech_recognizer = speechsdk.SpeechRecognizer(
speech_config=speech_config,
audio_config=audio_config
)
# Event handlers
def recognized_handler(evt):
print(f"Recognized: {evt.result.text}")
def recognizing_handler(evt):
print(f"Recognizing: {evt.result.text}")
# Connect event handlers
speech_recognizer.recognized.connect(recognized_handler)
speech_recognizer.recognizing.connect(recognizing_handler)
# Start continuous recognition
speech_recognizer.start_continuous_recognition()
print("Say something...")
# Keep the program running
input("Press Enter to stop...")
speech_recognizer.stop_continuous_recognition()
客戶端應用程式範例
舉例來說,假設你想開發一款輕量級應用程式,能自動轉錄語音信箱訊息。 在程式碼編輯器中,我們有一個音訊檔案和一個包含應用程式程式碼的 Python 檔案。
假設你有一個包含語音信箱錄音的音訊檔案。 要轉錄訊息,首先要指定終端點、鍵以及你想轉錄的音訊來源。 接著使用 SpeechRecognizer 物件進行轉錄,然後再顯示結果。
執行程式碼後,你可以看到轉錄文字。
音訊處理選項
你可以使用 Azure Speech 的語音轉文字 API,將音訊即時或批次轉錄成文字格式。 轉譯其音訊來源可以是來自麥克風或音訊檔案的即時音訊串流。
實時轉錄: 實時語音轉文本允許您將音頻流轉錄為文本。 您可將即時轉譯用於簡報、示範或任何其他有人演說的場景。
為了讓即時謄寫能夠正常運作,應用程式必須接聽從麥克風或其他音訊輸入來源 (例如音訊檔案) 傳入的音訊。 應用程式程式碼會將音訊串流至服務,這會傳回轉譯的文字。
批次謄寫:並非所有語音轉換文字案例都是即時的。 您可能有儲存在檔案共用、遠端伺服器,甚至是 Azure 儲存體上的音訊錄製內容。 您可使用共用存取簽章 (SAS) URI 來指向音訊檔案,並以非同步方式接收轉譯結果。
批次轉譯應該以非同步方式執行,因為批次作業是根據「最大工作量」來排程。 通常作業會在要求的幾分鐘內開始執行,但無法估計作業何時會變更為執行中狀態。
Azure 語音辨識是建立轉錄錄音或自動語音字幕解決方案的絕佳方式。 接著,學習如何將語音合成整合到應用程式中。