Microsoft Cognitive Services (3) - 在你的app中直接加入語音辨識
時代真的不一樣了。 我還記得剛使用iPhone的時候,那個著名的Siri,辨識我說話的效果不是很好,但因為我常常需要做語音筆記,並且轉到待辦事項或是行事曆紀錄裡面。因此,我下載了另一個叫做Dragon Dictation的app,哇,用起來驚為天人,辨識率出奇的好,讓我 龍心大悅 大開眼界。這,已經是幾年前的事情了。 直到最近,自己有需要在開發App時導入語音辨識,才開始又survey起相關的套件,萬萬沒想到,怎麼現在做語音辨識可以簡單成這樣? 語音辨識真的不是新玩意兒了,早幾年前微軟就已經推出過text/speech之間的轉換工具,但辨識率(特別是對中文的支援)依舊是大家是否會採用的關鍵,沒想到幾年不見,現在Cognitive Services中的Speech Recognition已經有非常好的成效,不僅僅辨識率高,也支援中文,還有提供C#、android、iOS、javascript…等等等的sdk,都開放成這樣了,如果再不用那就是對不起自己了。 現在要使用此服務,非常的簡單,參考本系列 第一篇 ,先申請好key之後,在你的專案中引入nuget package,然後就可以直接用了: 接著,我們來看程式碼的寫法: 請先建立一個全域的micClient物件,該物件可以從SpeechRecognitionServiceFactory靜態類別的CreateMicrophoneClient方法產生,可用來直接access我們電腦的麥克風,並進行收音並且開始辨識。 記得建立該物件的instance時要傳入辨識方法(SpeechRecognitionMode.LongDictation)與語言地區(zh-TW)等參數,當然也少不了key。 接著,我們hook幾個事件,分別是: OnMicrophoneStatus : micClient狀態發生改變時 OnPartialResponseReceived : 部分辨識完成時 OnResponseReceived : 整段語句辨識完成時 OnConversationError : 發生錯誤時 顯而易見的,你可以在OnResponseReceived 事件發生時,抓取辨識結果,因此我們聚焦在這個事件的Event handler(其他幾個事件你不hook也行)。 別忘了最後要呼叫StartMicAndR