版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1.語音采集與處理課程提綱數(shù)字音頻基礎(chǔ)ALSA架構(gòu)與基礎(chǔ)安裝與使用ALSA2?NXROBO2023實(shí)現(xiàn)效果3?NXROBO2023利用AlsaMixer工具調(diào)音數(shù)字音頻基礎(chǔ)?NXROBO20234聲音由變化的氣壓組成。它被麥克風(fēng)這樣的轉(zhuǎn)換器轉(zhuǎn)換成電子形式。模/數(shù)(ADC)轉(zhuǎn)換器將模擬電壓轉(zhuǎn)換成離散的樣本值。聲音以固定的時(shí)間間隔被采樣,采樣的速率稱為采樣率。把樣本輸出到數(shù)/模(DAC)轉(zhuǎn)換器,比如擴(kuò)音器,最后轉(zhuǎn)換成原來的模擬信號(hào)。樣本大小以位來表示。樣本大小是影響聲音被轉(zhuǎn)換成數(shù)字信號(hào)的精確程度的因素之一。另一個(gè)主要的因素是采樣率。奈奎斯特(Nyquist)理論中,只要離散系統(tǒng)的奈奎斯特頻率高于采樣信號(hào)的最高頻率或帶寬,就可以避免混疊現(xiàn)象ALSA聲音編程介紹&ALSA歷史?NXROBO20235ALSA,高級(jí)Linux聲音體系結(jié)構(gòu)(AdvancedLinuxSoundArchitecture)。它在Linux操作系統(tǒng)上提供了音頻和MIDI的支持。在2.6系列內(nèi)核中,ALSA已經(jīng)成為默認(rèn)的聲音子系統(tǒng),用來替換2.4系列內(nèi)核中的OSS(OpenSoundSystem,開放聲音系統(tǒng))。成為了linux的主流音頻體系結(jié)構(gòu)。1.ALSA聲音編程介紹2.ALSA歷史ALSA項(xiàng)目發(fā)起的起因是Linux下的聲卡驅(qū)動(dòng)(OSS/Freedrivers)沒有得到積極的維護(hù)。并且落后于新的聲卡技術(shù)。JaroslavKysela早先寫了一個(gè)聲卡驅(qū)動(dòng),并由此開始了ALSA項(xiàng)目,隨便,更多的開發(fā)者加入到開發(fā)隊(duì)伍中,更多的聲卡得到支持,API的結(jié)構(gòu)也得到了重組。Linux內(nèi)核2.5在開發(fā)過程中,ALSA被合并到了官方的源碼樹中。在發(fā)布內(nèi)核2.6后,ALSA已經(jīng)內(nèi)建在穩(wěn)定的內(nèi)核版本中并將廣泛地使用。ALSA體系架構(gòu)?NXROBO20236ALSA由許多聲卡的聲卡驅(qū)動(dòng)程序組成,同時(shí)它也提供一個(gè)稱為libasound的API庫(kù)。應(yīng)用程序開發(fā)者應(yīng)該使用libasound而不是內(nèi)核中的ALSA接口。因?yàn)閘ibasound提供最高級(jí)并且編程方便的編程接口。并且提供一個(gè)設(shè)備邏輯命名功能,這樣開發(fā)者甚至不需要知道類似設(shè)備文件這樣的低層接口。為了向后兼容,ALSA提供內(nèi)核模塊來模擬OSS,這樣之前的許多在OSS基礎(chǔ)上開發(fā)的應(yīng)用程序不需要任何改動(dòng)就可以在ALSA上運(yùn)行。ALSA包含插件功能,使用插件可以擴(kuò)展新的聲卡驅(qū)動(dòng),包括完全用軟件實(shí)現(xiàn)的虛擬聲卡。ALSA提供一系列基于命令行的工具集,比如混音器(mixer),音頻文件播放器(aplay),以及控制特定聲卡特定屬性的工具。ALSA接口?NXROBO20237ALSAAPI可以分解成以下幾個(gè)主要的接口:控制接口:提供管理聲卡注冊(cè)和請(qǐng)求可用設(shè)備的通用功能
PCM接口:管理數(shù)字音頻回放(playback)和錄音(capture)的接口。本節(jié)課后續(xù)總結(jié)重點(diǎn)放在這個(gè)接口上,因?yàn)樗情_發(fā)數(shù)字音頻程序最常用到的接口。RawMIDI接口:支持MIDI(MusicalInstrumentDigitalInterface),標(biāo)準(zhǔn)的電子樂器。這些API提供對(duì)聲卡上MIDI總線的訪問。這個(gè)原始接口基于MIDI事件工作,由程序員負(fù)責(zé)管理協(xié)議以及時(shí)間處理。定時(shí)器(Timer)接口:為同步音頻事件提供對(duì)聲卡上時(shí)間處理硬件的訪問。時(shí)序器(Sequencer)接口混音器(Mixer)接口語音采集
1.測(cè)試首先在系統(tǒng)設(shè)置里sound中input設(shè)置內(nèi)置語音音量,不要太大。安裝完成后我們就可以運(yùn)行測(cè)試了。首先,插入你的麥克風(fēng)設(shè)備,然后在系統(tǒng)設(shè)置里測(cè)試麥克風(fēng)是否有語音輸入。然后,運(yùn)行包中的測(cè)試程序:?NXROBO2023語音采集2.系統(tǒng)更新3.安裝ALSA庫(kù)
簡(jiǎn)要說明一下重要的庫(kù):
alsa-tools:該庫(kù)提供了對(duì)音頻操作的相關(guān)指令
libasound2-dev:提供alsa應(yīng)用編程API,如果使用c/c++編程會(huì)用到該庫(kù)的一些函數(shù)。$sudoaptupdate$sudoaptupgrade
?NXROBO2023$sudoaptinstallalsa-toolsalsa-ossflexlibc-binlibc-dev-binpython-pexpectlibasound2-dev語音采集4.使用arecord錄音工具進(jìn)行錄音解析:
arecord工具為我們剛剛安裝的alsa-tools提供的音頻操作,即錄音
-d:錄制時(shí)間(秒)
-D:指明設(shè)備名(plughw:i,j):其中i是卡號(hào),j是這塊聲卡上的設(shè)備號(hào)
5.安裝sox播放工具
$arecord-d10-Dplughw:0,0test.wav
?NXROBO2023$sudoaptinstallsox語音采集
6.安裝并使用alsamixer7.驗(yàn)證與測(cè)試播放錄好的音?NXROBO2023$sudoapt-getinstallalsamixer$playtest.wav2.離線語音識(shí)別課程提綱學(xué)習(xí)VOSK包的安裝及接口調(diào)用方法使用不同的識(shí)別模型實(shí)時(shí)語音識(shí)別把識(shí)別結(jié)果作為ROS話題發(fā)布13?NXROBO2023實(shí)現(xiàn)效果14?NXROBO2023查看語音識(shí)別結(jié)果VOSK介紹?NXROBO202315Vosk是言語識(shí)別工具包。Vosk是開源的語音識(shí)別開發(fā)套件,可以支持多種語言,并且可以和開源媒體服務(wù)器Asterisk,F(xiàn)reeSWITCH,unimrcp和Jigasi集成(開源jitsi視頻會(huì)議服務(wù)器的SIP接口)實(shí)現(xiàn)離線識(shí)別。其語音識(shí)別引擎使用的是基于開源語音識(shí)別引擎kaldi實(shí)現(xiàn)。其應(yīng)用場(chǎng)景包括輕量級(jí)的離線語音識(shí)別,支持安卓,樹莓派等終端設(shè)備。支持二十+種語言-中文,英語,印度英語,德語,法語,西班牙語,葡萄牙語,俄語,土耳其語,越南語,意大利語,荷蘭人,加泰羅尼亞語,阿拉伯,希臘語,波斯語,菲律賓語,烏克蘭語,哈薩克語,瑞典語,日語,世界語,印地語,捷克語移動(dòng)設(shè)備上脫機(jī)工作-RaspberryPi,Android,iOS使用簡(jiǎn)單的pip3installvosk安裝每種語言的手提式模型只有是50Mb,但還有更大的服務(wù)器模型可用提供流媒體API,以提供最佳用戶體驗(yàn)(與流行的語音識(shí)別python包不同)還有用于不同編程語言的包裝器-java/csharp/javascript等可以快速重新配置詞匯以實(shí)現(xiàn)最佳準(zhǔn)確性支持說話人識(shí)別安裝依賴&VOSK?NXROBO202316安裝依賴$pip3installsounddevice安裝VOSK$pip3installvosk$sudoaptinstallpython3-pippython3-yaml安裝模型?NXROBO202317下載地址:/vosk/models我們可以在這個(gè)網(wǎng)址下載不同的語言模型,該網(wǎng)站提供兩種類型的模型——大模型和小模型,小模型非常適合移動(dòng)應(yīng)用程序上的一些有限的任務(wù)。它可以在智能手機(jī)和樹莓派上運(yùn)行,也可以在桌面應(yīng)用程序上使用。小型模型的大小通常在50Mb左右,運(yùn)行時(shí)需要大約300Mb的內(nèi)存。大模型用于服務(wù)器上的高精度轉(zhuǎn)錄。大型模型由于采用了先進(jìn)的人工智能算法,內(nèi)存容量最高可達(dá)16Gb。通常情況下,模型越大,識(shí)別精度越高,根據(jù)設(shè)備選擇合適的模型,這里我們選擇vosk-model-small-en-us-0.15和vosk-model-small-cn-0.3來分別實(shí)現(xiàn)英文和中文的語音識(shí)別。同學(xué)們可以根據(jù)自己機(jī)器的性能,嘗試使用其他模型對(duì)比效果。安裝模型?NXROBO202318在包voice_02下面建一個(gè)models目錄,存放語音模型文件$cd~/voice_02$mkdirmodels$cdmodels將下載好的模型下載后,解壓至此目錄。測(cè)試離線語音識(shí)別?NXROBO202319終端運(yùn)行rosrun啟動(dòng)程序$rosrunvoice_02local_asr.py對(duì)著麥克風(fēng),講一些簡(jiǎn)單的語句,(如果使用英文庫(kù),請(qǐng)說英文;如果使用普通話庫(kù),請(qǐng)說中文)用rostopicecho進(jìn)行查看識(shí)別的輸出,即ROS發(fā)布的結(jié)果消息$rostopicecho/voice/stt3.在線語音識(shí)別課程提綱開通百度語音功能websocket接口調(diào)用參數(shù)調(diào)整及功能調(diào)試21?NXROBO2023實(shí)現(xiàn)效果22?NXROBO2023查看語音識(shí)別結(jié)果注冊(cè)百度AI開放平臺(tái)?NXROBO2023231、注冊(cè)賬號(hào),并登錄百度大腦AI開放平臺(tái)/2、通過控制臺(tái)左側(cè)導(dǎo)航,選擇語音技術(shù)注冊(cè)百度AI開放平臺(tái)?NXROBO2023243、點(diǎn)擊創(chuàng)建應(yīng)用,按要求填入信息百度大腦AI開放平臺(tái)/4、選擇管理應(yīng)用,記住AppID和APIKEY備用將百度語音應(yīng)用到ros節(jié)點(diǎn)?NXROBO202325安裝依賴創(chuàng)建包$cdvoice_kit/src$pip3installwebsocket-client$catkin_creat_pkgvoice_03roscpprospystd_msgs參考/Baidu-AIP/speech_realtime_api/blob/master/python-realtime-asr/realtime_asr.py代碼編寫ROS節(jié)點(diǎn)將百度語音應(yīng)用到ros節(jié)點(diǎn)?NXROBO202326創(chuàng)建節(jié)點(diǎn)文件編寫CMakeLists.txt文件$cd~/voice_kit在scripts文件夾下創(chuàng)建baidu_asr.py$catkin_make參考下文代碼部分編譯$source~/voice_kit/devel/setup.bash測(cè)試在線語音識(shí)別?NXROBO202327終端運(yùn)行node節(jié)點(diǎn)$rosrunvoice_03baidu_asr.py$roscore對(duì)著麥克風(fēng)講話,會(huì)識(shí)別出來,如下圖4.自然語言理解課程提綱自然語言理解開發(fā)平臺(tái)新建機(jī)器人機(jī)器人添加技能插件調(diào)用參數(shù)調(diào)整JSON格式處理29?NXROBO2023實(shí)現(xiàn)效果30?NXROBO2023使用百度機(jī)器人進(jìn)行對(duì)話自然語言理解?NXROBO202331自然語言理解是所有支持機(jī)器理解文本內(nèi)容的方法模型或任務(wù)的總稱。NLU在文本信息處理系統(tǒng)中扮演著非常重要的角色,是推薦、問答、搜索等系統(tǒng)的必備模塊。人機(jī)交互過程中,機(jī)器人理解我的訴求的環(huán)節(jié),使用的技術(shù),就是所謂的自然語言理解(NaturalLanguageUnderstanding,NLU)。登錄百度AI開放平臺(tái)?NXROBO202332選擇云端版,免費(fèi)使用進(jìn)行注冊(cè)后,進(jìn)入平臺(tái)注冊(cè)百度AI開放平臺(tái)賬號(hào)并進(jìn)入平臺(tái)/unit/home注冊(cè)百度AI開放平臺(tái)?NXROBO202333點(diǎn)擊左側(cè)的“+”號(hào),新建機(jī)器人注冊(cè)百度AI開放平臺(tái)?NXROBO2023341.設(shè)置機(jī)器人名稱2.選擇技能分發(fā)3.修改機(jī)器人描述注冊(cè)百度AI開放平臺(tái)?NXROBO202335然后進(jìn)入新創(chuàng)建的機(jī)器人,點(diǎn)擊“技能管理”,添加“閑聊”技能,這里大家可以嘗試創(chuàng)建自定義技能,并添加到自己的機(jī)器人中。注冊(cè)百度AI開放平臺(tái)?NXROBO202336點(diǎn)擊左上角的“對(duì)話”,測(cè)試一下剛添加的技能是否生效,并注意記錄機(jī)器人的ID,比如這里的“S67717”,后面代碼中需要用到這個(gè)ID。注冊(cè)百度AI開放平臺(tái)?NXROBO202337確認(rèn)技能無誤后,選擇發(fā)布上線,選擇研發(fā)/生產(chǎn)環(huán)境通過查看發(fā)布至研發(fā)環(huán)境中的對(duì)話API接口3.0,進(jìn)行對(duì)話配置測(cè)試;點(diǎn)擊獲取APIKey/SecretKey,查看自己的AppID,APIKey以及SecretKey將百度語音應(yīng)用到ros節(jié)點(diǎn)?NXROBO202338安裝依賴編寫ROS自然語言理解節(jié)點(diǎn)$cd~/voice_kit/src$sudopip3installrequests$catkin_creat_pkgvoice_04roscpprospystd_msgs在scripts文件夾下創(chuàng)建baidu_nlu.py,源碼見下文答案,需修改自己的密鑰及機(jī)器人ID信息編譯并運(yùn)行?NXROBO202339編譯啟動(dòng)&測(cè)試$roscore$cd~/voice_kit/$rosrunvoice_03baidu_asr.py//語音識(shí)別$catkin_make$source~/voice_kit/devel/setup.bash$rosrunvoice_04baidu_nlu.py//語義理解向主題發(fā)消息,會(huì)收到回復(fù)$rostopicpub-1/voice/sttstd_msgs/String"你叫什么名字"比如對(duì)著麥克風(fēng)講:今天天氣怎么樣?會(huì)收到智能的回復(fù)其他功能?NXROBO202340我們還可以添加自定義技能實(shí)現(xiàn)定制化的對(duì)話。5.離線語音合成課程提綱TTS功能包espeak安裝與使用espeak把語音合成集成進(jìn)ROS中42?NXROBO2023實(shí)現(xiàn)效果43?NXROBO2023語音合成結(jié)果espeak44?NXROBO2023espeak(TextToSpeech)參考地址:/index.html安裝espeak英文語音合成工具?NXROBO202345安裝espeak測(cè)試espeak$espeak-vzh“helloworld”$sudoaptinstallespeak編寫ROS節(jié)點(diǎn)啟動(dòng)TTS?NXROBO202346參考:voice_05文件夾下的local_tts_test.py文件會(huì)收到智能的回復(fù)1.使用Python創(chuàng)建節(jié)點(diǎn)文件2.創(chuàng)建訂閱者訂閱話題3.編寫回調(diào)函數(shù),在Python中啟動(dòng)終端執(zhí)行命令編譯&測(cè)試合成效果?NXROBO202347編譯啟動(dòng)節(jié)點(diǎn)$rosrunvoice_05local_tts_test.py$cd~/spark_noetic/$rostopicpub-1/voice/ttsstd_msgs/String"helloworld"TTS效果$catkin_make測(cè)試效果6.在線語音合成課程提綱開通百度語音合成功能學(xué)習(xí)百度語音合成示例
將百度語音應(yīng)用到ros節(jié)點(diǎn)49?NXROBO2023實(shí)現(xiàn)效果50?NXROBO2023在線語音合成百度開通語音合成功能?NXROBO202351使用百度帳號(hào),開通語音合成功能參考:/tech/speech/tts_online將百度語音應(yīng)用到ros節(jié)點(diǎn)?NXROBO2023522.編譯(需要先將源代碼復(fù)制到spark_app)3.啟動(dòng)&測(cè)試$rosrunvoice_06baidu_tts.py$cd~/spark_noetic/$catkin_make$sourcedevel/setup.bash4.發(fā)布話題數(shù)據(jù)$rostopicpub-1/voice/ttsstd_msgs/String"今天天氣如何"實(shí)現(xiàn)語音合成1.安裝依賴$pip3installnumpysounddevice主要就是訂閱一個(gè)自定義話題上的文本消息傳給百度tts獲取語音流并播放。注意填入自己的密鑰信息。詳細(xì)見源碼。$roscore7.語音指令控制課程提綱語音識(shí)別移動(dòng)控制參數(shù)調(diào)整54?NXROBO2023實(shí)現(xiàn)效果55?NXROBO2023語音控制spark移動(dòng)語音識(shí)別?NXROBO202356啟動(dòng)第2或
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《簡(jiǎn)筆畫上色技巧》課件
- 中心投影和平行投影課件
- 《壓力管理》課件
- 《市場(chǎng)營(yíng)銷情景模擬》課件
- 單位管理制度集粹選集職工管理篇
- 單位管理制度匯編大全職員管理篇
- 單位管理制度合并選集人力資源管理篇
- 三峽復(fù)習(xí)課件
- 《精油的起源基礎(chǔ)》課件
- 單位管理制度分享合集【人事管理】
- 會(huì)計(jì)科目涉稅風(fēng)險(xiǎn)點(diǎn)風(fēng)險(xiǎn)
- 香椿矮化密植栽培
- GB/T 4214.3-2023家用和類似用途電器噪聲測(cè)試方法洗碗機(jī)的特殊要求
- 建設(shè)工程質(zhì)量控制講義三
- YY/T 0606.7-2008組織工程醫(yī)療產(chǎn)品第7部分:殼聚糖
- 2023年遼寧軌道交通職業(yè)學(xué)院高職單招(英語)試題庫(kù)含答案解析
- GB/T 29076-2021航天產(chǎn)品質(zhì)量問題歸零實(shí)施要求
- DL-T 5190.1-2022 電力建設(shè)施工技術(shù)規(guī)范 第1部分:土建結(jié)構(gòu)工程(附條文說明)
- 殯葬服務(wù)人才需求調(diào)研報(bào)告
- 降低銳器盒不規(guī)腎內(nèi)科品管圈課件
- 《了凡四訓(xùn)》課件
評(píng)論
0/150
提交評(píng)論