《鴻蒙機器人編程》7-實踐課 - 語音交互、識別與合成-實訓指南_第1頁
《鴻蒙機器人編程》7-實踐課 - 語音交互、識別與合成-實訓指南_第2頁
《鴻蒙機器人編程》7-實踐課 - 語音交互、識別與合成-實訓指南_第3頁
《鴻蒙機器人編程》7-實踐課 - 語音交互、識別與合成-實訓指南_第4頁
《鴻蒙機器人編程》7-實踐課 - 語音交互、識別與合成-實訓指南_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

PAGE17實踐課-語音交互、識別與合成課程內(nèi)容: 語音是人類日常交流最主要的方式(沒有之一),也是人機交互最自然的方式之一。語音識別(ASR)和語音合成(TTS)技術(shù)的出現(xiàn),讓人機接口更加自然,但由于技術(shù)(識別率不夠高)和人們習慣上的原因,其普及應用經(jīng)歷了很長時間,由于近年人工智能與云計算的技術(shù)興起,ASR這項技術(shù)正在如火似涂地發(fā)展、普及。語音識別(ASR)和語音合成(TTS)技術(shù)的出現(xiàn),讓人機接口更加自然,但由于技術(shù)(識別率不夠高)和人們習慣上的原因,其普及應用經(jīng)歷了很長時間,由于近年人工智能與云計算的技術(shù)興起,ASR這項技術(shù)正在如火似涂地發(fā)展、普及。本節(jié)主要對ASR于TTS進行介學習。教學目標:掌握ASR與TTS基本概念掌握離線語音識別及在線語音識別掌握離線語音合成及在線語音合成掌握語音控制Spark機器人運動一.ASR與TTS基本概念ASR,英文的全稱是AutomatedSpeechRecognition,即自動語音識別技術(shù)。語音識別系統(tǒng)的性能大致取決于以下4類因素:1.識別詞匯表的大小和語音的復雜性;2.語音信號的質(zhì)量;3.單個說話人還是多說話人;4.硬件TTS,英文全稱是TextToSpeech,即文字語音轉(zhuǎn)換,又稱為計算機語音合成。語音合成系統(tǒng)包括三個主要的組成部分:文本分析模塊、韻律生成模塊和聲學模塊。TTS技術(shù)已經(jīng)相對成熟。二.語音識別1.Pocketsphinx庫介紹spark的離線語音識別使用的是pocketsphinx,但其只支持英文,若想要支持中文還得選本土化的語音引擎。本土化的語音引擎最近比較火熱的有迅飛、百度、阿里、云知聲等。ROS中自帶的語音合成的功能包是sound_play。下面分別介紹pocketsphinx功能包、sound_play功能包。Sphinx-2采用半連續(xù)隱含馬爾可夫模型(SCHMM)建模,采用的技術(shù)相對落后,使得識別精度要低于其它的譯碼器。PocketSphinx是一個計算量和體積都很小的嵌入式語音識別引擎。在Sphinx-2的基礎上針對嵌入式系統(tǒng)的需求修改、優(yōu)化而來,是第一個開源面向嵌入式的中等詞匯量連續(xù)語音識別項目。識別精度和Sphinx-2差不多。Sphinx-3是CMU高水平的大詞匯量語音識別系統(tǒng),采用連續(xù)隱含馬爾可夫模型CHMM建模。支持多種模式操作,高精度模式扁平譯碼器,由Sphinx3的最初版本優(yōu)化而來;快速搜索模式樹譯碼器。目前將這兩種譯碼器融合在一起使用。Sphinx-4是由Java語言編寫的大詞匯量語音識別系統(tǒng),采用連續(xù)的隱含馬爾可夫模型建模,和以前的版本相比,它在模塊化、靈活性和算法方面做了改進,采用新的搜索策略,支持各種不同的語法和語言模型、聽覺模型和特征流,創(chuàng)新的算法允許多種信息源合并成一種更符合實際語義的優(yōu)雅的知識規(guī)則。由于完全采用JAVA語言開發(fā),具有高度的可移植性,允許多線程技術(shù)和高度靈活的多線程接口。ROS功能包中使用的是PocketSphinx。PocketSphinx語音識別是離線識別方式,將一些常用的詞匯放到一個文件中,作為識別的文本庫,然后分段識別語音信號,最后在庫中搜索對應的文本信息。2.安裝PocketSphinx安裝自帶主機的spark本身已經(jīng)安裝好pocketsphinx庫,如果是自己的筆記本,請從\h/NXROBO/spark.git下載源碼,并運行源碼里的onekey.sh,按照提示安裝spark依賴,當然你也可以選擇如下步驟手動安裝:安裝系統(tǒng)依賴庫:$Sudoaptinstall-yswigportaudio19-dev更新pip:$sudoeasy_install-Upip使用pip安裝相應的庫:$sudopip3installpocketsphinxwebrtcvadpyaudio3.麥克風測試首先,插入你的麥克風設備,然后在系統(tǒng)設置里測試麥克風是否有語音輸入。如果使用的是spark自帶的小主機,可以使用NUC提供的陣列麥克風。嘗試對機器人說話,看inputlevel是否有變化。如果識效果不好,可以通過調(diào)節(jié)Volume來優(yōu)化。基于PocketSphinx的語音識別程序local_ars.py(路徑:spark_noetic/src/spark_app/spark_voice/local_ars.py)4.進入spark_noetic工作空間并啟動程序:$cdspark_noetic$roscore&rosrunspark_voicelocal_asr.py現(xiàn)在說幾條短語,"turnleft","forward","stop"。我們也可以直接看ROS最后發(fā)布的結(jié)果消息:rostopicecho/voice/stt5.詞匯庫這個語音識別是一種離線識別的方法,將一些常用的詞匯放到一個文件中,作為識別的文本庫,然后分段識別語音信號,最后在庫中搜索對應的文本信息。如果想看語音識別庫中有哪些文本信息,可以通過下面的指令進行查詢:roscdspark_voice/scripts/lib/pocketsphinx-data/morecmd.txt6.訓練自己的聲學模型一般這種離線語音識別效果不太好,我們需要訓練自己的聲學模型提高識別準確度,同時也可以自己向語音庫中添加其他的文本識別信息,由于篇幅的原因,這里不作過多的介紹,大家可以訪問\hhttps://cmusphinx.github.io/wiki/tutorial/進行學習。7.在線語音識別更通用的做法是選擇在線語音識別,這樣可以大大提高語音識別的準確率。注意使用此功能需要互聯(lián)網(wǎng)支持。一般語音識別服務的提供商都有非常完善的各種編程語言的SDK調(diào)用說明,支持各種程序設計語言。下面以百度的在線語音識別baidu_asr.py(路徑:spark_noetic/src/spark_app/spark_voice/baidu_ars.py)為例,給大家簡答的介紹一下:8.語音控制語音控制的流程一般是由語音識別節(jié)點(比如baidu_asr.py)識別語音內(nèi)容,通過topic發(fā)送到voice/stt,然后編寫一個機器人控制節(jié)點接收這個消息進行相應的處理,在spark中,這個節(jié)點為voice_nav.py,大家也可更改這個代碼增加更多的控制指令:voice_nav.py在接收到語音識別結(jié)果后,會解析結(jié)果并轉(zhuǎn)換成標準的Twist消息,并通過topic發(fā)送到cmd_vel,機器人底盤或者仿真程序通過監(jiān)聽這個topic實現(xiàn)移動控制:$roslaunchspark_voicebaidu_nav.launchcamera_type_tel:=d435或者:$roslaunchspark_voicevoice_nav.launchcamera_type_tel:=d435對機器人說“前進”或者“forward”,即可看到機器人開始移動。9.語音合成現(xiàn)在機器人已經(jīng)可以按照我們說的話行動了,要是機器人可以和我們對話就更好了。ROS中已經(jīng)集成了這樣的包,下面就來嘗試一下。首先安裝相應的包sudoaptinstallros-noetic-sound-play語音測試及說話:roslaunchsound_playtest.launchrosrunsound_playsay.py"howareyou"有沒有聽見聲音?ROS通過識別我們輸入的文本,讓機器人讀了出來。發(fā)出這個聲音的人叫做kal_diphone,如果不喜歡,我們也可以換一個人來讀:sudoaptinstallfestvox-donrosrunsound_playsay.py"Welcometothesparkworkshop"voice_don_diphone以下命令列出所有目前在您的系統(tǒng)上安裝的所有的英語聲音:ls/usr/share/festival/voices/english以下命令列出所有可用的聲音列表,運行以下命令:sudoapt-cachesearch--names-onlyfestvox-*因為我們的spark是沒有安裝音箱的,大家可以外接音箱或者耳機的方式來實現(xiàn)這個功能。同時更多的用法請參考\h/sound_play。如外接音響或耳機后,spark無聲音,可參考以下方式:$sudoaptinstallpavucontrol$pavucontrol切換到“配置”選項卡,選擇“AnalogStereoDuplex”切換到輸出設備,選擇headphones10.小結(jié)主

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論