Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 記錄軟體開發的點點滴滴 著重於微軟技術、網頁開發、DevOps、C#, Asp .net Mvc、Azure、AI、Chatbot、Docker、Data Science

[chatbot + AI = 下一代操作模式][33]C#使用Translator Speech API服務達到語音轉文字加翻譯

[chatbot + AI = 下一代操作模式][33]C#使用Translator Speech API服務達到語音轉文字加翻譯.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([32]Cognitive Service語音服務相關介紹)介紹了Cognitive Service裡面對於語音相關的服務介紹,在接下來將會關注在語音轉文字加翻譯的服務上面。

上篇提到有兩個服務在做這件事情,分別為Speech Service以及Translator Speech API。個人使用經驗是Translator Speech API比較準確,因此在這篇將環繞在如何在C#使用Translator Speech API。

這篇的程式碼github頁面是alantsai-samples/mhat-hotelbot:blog/chapter-33

使用Translator Speech API

Translator Speech API的文件在這邊:文件位置,基本上可以從上面找到不同語言的Quickstarts, 稍後的C# Console程式也是基於這個Quickstart的内容。

要使用Translator Speech Api基本上需要:

  1. 從Azure建立Key
  2. 從文件瞭解API參數
  3. 建立一個C# Console整合功能

從Azure建立Key

和其他的Cognitive Service服務一樣,要使用服務要先在Azure建立出一個key。如果測試用,只需要Free版本即可。

首先進入到Azure的portal找到Translator Speech的服務按下Create,也可以用這個 鏈接直接開啓建立畫面:

  1. Name - 輸入可以識別的名稱就好
  2. Pricing Tier - 測試用Free即可,有10小時可以用。其他等級以及費用可以在右邊展開的畫面看到
  3. Resource Group - 選擇要放在那個Resource Group
chrome_2018-08-14_18-08-33.png
建立Translator Speech

沒問題了之後,按下Create,然後稍等一下服務建立出來之後在點進去。

看到一個常見的畫面,點選Keys,記錄好其中一組即可:

chrome_2018-08-14_22-07-40.png
取得Key值

這邊和其他Cognitive Service不同的是,下面的Api Endpoint和Api Reference其實都是錯的内容。

從文件瞭解API參數

有了key之後,就可以使用Translator Speech API,但是怎麽呼叫這個API呢?

Translator Speech Api是一個WebSocket的服務,API的文件在這裡,在裡面有幾個重要的參數:

from
輸入的來源語言
to
文字要被翻譯的語言
format
語音的格式,有支援audio/wavaudio/mp3。預設是wav。wav檔案要求16 bit, single channel PCM with a sampling rate of 24kHz or 16kHz

當然,這邊列的只有幾個比較重要的參數,完整的參數還是要看文件裡面。

建立一個C# Console整合功能

整個程式碼有點長,因此這邊不會show code的部分,不過整個console程式拆解下來大概有:

  1. TranslateSpeech:這個方法在設定呼叫url的參數以及實際觸發送語音檔案以及從Translator Speech Api得到結果的部分
  2. Send:定義把要辨識的聲音檔案發送出去的方法
  3. Receive:定義從Translator Speech Api取得辨識結果的方法

要呼叫使用console之前需要修改static string key = "";,把從Azure取得的key放到這個variable裡面。

測試的語音檔則是speak.wav,這個語音内容是:What's the wather like?

剩下的應該還滿直覺容易懂,完整的程式碼請看: mhat-hotelbot/src/MHAT.TranslatorSpeechQuickStart/Program.cs

測試結果

接下來就把整個C# Console run起來,看到的結果如下圖:

cmd_2018-08-14_23-36-33.png
語音文字識別成功并且翻譯成爲繁體中文

從截圖可以發現:

  1. 語音轉文字成功
  2. 轉出的文字被翻譯成爲繁體中文

這個api其實有支援直接把翻譯的文字變成語音,所以其實可以達到即使語音翻譯。

結語

這篇介紹了如何用程式碼的方式來呼叫Translator Speech Api。做出了一個C#的Console程式,并且可以看出識別的很成功。

在下一篇([34]賦予Chatbot用語音下指令以及翻譯的功能)將把這個服務整合到chatbot裡面。


如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
台灣 Pay QR Code
台灣 Pay QR Code
Line Pay 一卡通 QR Code
Line Pay 一卡通 QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus