Google翻譯積木

其實很久之前就知道如何透過開發板去取得Google翻譯後的結果,但是覺得這個功能在ESP32好像沒有什麼可以應用的點,所以就一直沒有做成積木,直到把I2S的麥克風積木完成後,可以透過麥克風將聲音上傳到Azure將語音辨識成文字,辨識後的文字便可以直接送到Google進行翻譯,翻譯後的文字透過I2S的音訊裝置播放出來,這樣ESP32不就可以變成雙向的語音翻譯機?於是便花了一個下午的時間把「Google翻譯積木」完成,「Google翻譯積木」的位置在「吉哥積木」→「網路應用服務」→「Google翻譯」內,純粹翻譯功能的積木在7697、ESP32、ESP8266都適用。這個積木會自動辨識來源文字是哪一種語言,所以在「來源文字」的地方可以輸入Google翻譯所支援的任何一種語言的文字,然後再設定要翻譯成哪種語言,翻譯成功之後,透過「Google翻譯 譯文」的積木,便可以取得翻譯後的結果。

ESP32雙向語音翻譯機

範例一:簡單的雙向翻譯的例子

以下的範例,按下A鍵,會將中文翻成日文;按下B鍵,會將韓文翻成中文;按下A+B鍵,會將中文翻成烏克蘭文。翻譯時,Google Translation會自動偵測原來的文字的語系,所以只要設定好翻譯的「來源文字」以及要翻成什麼語言即可,這裡有設定了一個下拉選單,使用下拉的方式便可以快速設定一些語言,但是,如果這個下拉選單中沒有你想要設定的語言,只要將下拉選單移開,放入一個字串積木,將你想要的語言代碼填入即可,或是將語言代碼以字串變數的方式填入也可以。以下的例子,按下A+B鍵會將中文翻成烏克蘭文便是使用這種方式,至於語言代碼,因為Google翻譯所支援的語言有一百多個,所以我就沒有把所有的語言做成下拉選單,需要下拉選單列出的以外的語言,可以從Google的這個網站查詢:查詢語言代碼。因為OLED不能顯示各國文字,因此以下的例子會將翻譯後的譯文以序列埠的方式傳送到電腦,電腦以putty或是其他序列埠的軟體來讀取ESP32傳來的訊息。

程式產生的結果:

範例二:搭配I2S麥克風及音訊模組,進行語音辨識翻譯後,直接唸出譯文

以下的例子,對著麥克風說出5秒鐘的中文句子,語音會傳送到Azure進行辨識,再將辨識成的中文文字傳到Google翻譯,翻成你想要的語言,並且會透過I2S音訊裝置唸出該外國語音。按下A鍵會翻譯成日文;按下B鍵會翻譯成文。

想要了解I2S麥克風及音訊裝置積木的使用,請點選以下連結:I2S音訊裝置積木I2S麥克風積木