Azure 認知服務平台提供了 AI as a Platform 的一站式服務,其中提供了多種認知服務,例如電腦視覺、語音服務、文字分析、異常偵測等等,官方也提供了多種程式語言的 SDK,讓開發者可以更容易地使用 SDK 來呼叫認知服務的 REST API,輕鬆應用 AI 讓應用程式變得更智能。這篇來玩玩將語音即時轉譯為文字的 Speech Cognitive Service。
Speech Cognitive Service 語音服務可以將語音轉成文字,像是聽寫員一樣,把收到的語音資料,透過 AI 語音模型做辨識,然後轉成文字輸出,更多介紹可以參考官方的語音服務介紹。
申請 API 金鑰
Azure 認知服務是一個 AI 平台服務,要使用之前要先到 Azure Portal 去建立認知服務資源,在建立資源的頁面中搜尋一下認知服務或 Cognitive Service 就可以找到他,簡單設定名字和資源群組位置就差不多了。

有了這項資源後,所有的認知服務都可以使用此資源的 Endpoint 來使用。至於費用每項服務都不一樣,就參考官網的說明。
不過如果只是要試用看看,可以使用這個連結 https://azure.microsoft.com/zh-tw/try/cognitive-services/my-apis/ ,申請 30 天試用金鑰,每項認知服務都可以申請一次唷!語音服務的試用額度為每月 5000 筆呼叫,每分鐘最多 20 次,拿來測試相當夠用了。

申請完成後,你會得到 API 端點和金鑰,從端點的 URL 中可以得知,這個試用的資源,他的服務區域在美西 westus,這個資訊很重要,等一下會用到,將金鑰和服務區域這兩組資訊記下來後,就可以開始寫隻呼叫語音服務的程式。
使用 C# 開發
官方提供了很多平台和程式語言的 SDK,這裡用 Windows 10 和 C# 來做範例,關於 C# 的語音服務 SDK 文件可以參考這個連結 https://docs.microsoft.com/zh-tw/dotnet/api/overview/azure/cognitiveservices/client/speechservice。
使用 SDK 的整個程式運作流程如下:
- 設定使用語音服務所需要的
金鑰和服務區域 - 建立語音辨識器
- 設計辨識後的結果動作
範例程式碼如下:
1 | public static async Task RecognitionWithMicrophoneAsync() |
注意到上面的程式碼使用 RecognizeOnceAsync() 這個方法來執行辨識,此方法會根據語音的靜默頓點來判斷是否說完,或是語音超過 15 秒也會被強制斷句,執行結果如下圖:

如果你需要辨識的語音超過 15 秒,可以改用 StartContinuousRecognitionAsync() 這個方法,他可以持續收聽並辨識語音資訊,你也可以設定辨識過程中的事件,使其做出你想要的動作,相關程式碼你可以參考範例程式碼 的 ContinuousRecognitionWithMicrophoneAsync() 方法。
本篇完整範例程式碼請參考 poychang/Demo-Speech-Recognition-App。
後記
你知道 Office 365 的 PowerPoint 可以在簡報模式開啟即時字幕,這功能就是透過像這樣的認知服務,將演講者的演說及時轉換成字幕,更厲害的是,他還可以即時翻譯成其他語系,而同樣的功能,我們可以使用本篇所使用到的語音認知服務加上語音翻譯服務,達成同樣的效果。
想要試試看在 PowerPoint 中顯示即時、自動輔助字幕或翻譯字幕,可以參考這篇文章來嘗試看看。
參考資料: