免费鲁丝无码一级|产精品自产拍高潮在线播放|午夜一级久久黄色视频|欧美在线视频一区二区三区

  • <abbr id="8ouae"><del id="8ouae"></del></abbr>
    <menu id="8ouae"></menu>
  • <menu id="8ouae"></menu>

    百度遠場語音識別套件-開箱評測

    2019-08-07 10:15:06  來源:互聯(lián)網(wǎng)

    作者:周施樂

    遠場語音識別套件之開箱

    很榮幸,在2019年我依舊在百度AI平臺下茁壯成長,這次收到了來自百度的測試邀請,我將有機會拿到最新的前沿產品~為各位獻上來自前線的戰(zhàn)況~

    我在過去和百度語音打交道的這些日子,曾遇到過很多問題,比如識別慢、精度差。自身原因和設備原因太多,舉步艱難。我覺得一個非音頻內行的人很難進一步提升在這一塊的性能與質量。

    但現(xiàn)在,百度語音正不斷地完善,已經推出多種我非常適用的新東西,例如:

    上個月剛上線的 百度語音識別極速版

    該項能力經我自己特定樣本測試,可以提高識別速度約3~9倍,在上側傳送門的測試樣例中,最慢的普通版和最快的極速版耗時甚至相差24倍,可見該極速版,可謂是目前普通版的最佳替代方案了!

    這次我將為各位帶來的百度開發(fā)套件的新星啦

    遠場語音開發(fā)套件!

    這是一款很不錯的產品,就像之前的人臉開發(fā)套件一樣,他能有效幫助想要落地語音識別的企業(yè)和個人開發(fā)者們快速開發(fā)出屬于自己的業(yè)務產品。

    在本次產品的規(guī)格中,有三種配置可選,依次是:

    6+1環(huán)形麥陣列

    4mic線性陣列

    3mic三角陣列

    他們各有各的應用場景,為了更好地提升各位未來的產品,一定要聽我說完他們的優(yōu)點喔!

    6+1環(huán)麥陣列

    6+1環(huán)形陣列由6顆麥克風圍繞一圈,中間分布一顆組成,可實現(xiàn):

    360零死角環(huán)繞聲場

    增強GSC聲源定位及波束形成效果

    基于非線性消除的AEC技術

    推薦用于智能音箱等智能家居產品。

    像現(xiàn)在主流的天貓精靈、小米音箱,都是采用的環(huán)形6麥陣列喔!

    還有像國外的amazon echo 采用了類似解決方案

    他可以做到無死角的識別和聲源定位喔!這還是值得玩一玩的~

    線性4麥陣列

    4mic陣列由4顆麥克風橫向排列

    陣型狹長占用空間小,可適配各種硬件結構設計。

    推薦應用于智能電視、平板、以及空調、冰箱等傳統(tǒng)白電產品。

    三角麥克陣列

    3mic陣列是由3顆麥克風三角形方式排列

    支持雙音區(qū),兼顧主/副駕的語音交互需求

    增強GSC聲源定位及波束形成效果

    基于非線性消除的AEC技術

    3mic也支持聲源定位喔

    本次我所收到的是4mic陣列套件呢。他也是帶有聲源定位的哦~

    廢話不多說,開箱開始!

    首先這次開發(fā)套件的外包裝精致小巧,方方正正的外包裝有種撲面而來的低調奢華與神秘感,不知道各位有沒有看過四驅兄弟呢?

    真是側漏著一股神秘的氣息呢!揭開它的面紗,看看里面吧

    包裝盒內非常簡單明了,一張3折頁,簡單的說明書,開發(fā)套件本尊及數(shù)據(jù)線和電源線。

    說明書簡單介紹了包裝內容清單、開發(fā)板的接口示意圖、硬件連接指南、測試方式和軟件開發(fā)環(huán)境搭建引導,比較簡單。

    我們來看一下開發(fā)套件本身吧,本套件使用的開發(fā)板是來自深圳市百能達電子有限公司和百度聯(lián)手打造的RK3308開發(fā)板,擁有128M的ram和128M的flash。cpu采用的是微芯瑞的rk3308,4核ARM Cortex-A35。

    wifi方面僅支持2.4g頻段,藍牙支持到4.0。

    在本套件上額外有一片wifi天線,所以wifi質量杠杠的。

    麥克風可兼容上方的3種陣列。

    數(shù)據(jù)線是usb-micro,主要用于adb調試。

    所配套的是輸出為12V2A的電源。

    遠場語音識別套件之hello world(mac篇)

    點亮設備,插上usb線,我們即將進入環(huán)境配置階段。

    本篇使用macOS majave 10.14.4做演示。

    插入設備前,應當保證自己的系統(tǒng)內具備adb環(huán)境。在terminal內確認一下

    至于如何安裝,可參考百度搜索下的各種adb部署文章~

    然后我們第一步首先要幫助開發(fā)套件連接到我們的wifi中來。

    根據(jù)《百度大腦-遠場語音開發(fā)套件-RK3308開發(fā)平臺使用說明.pdf》中所提到的wifi配置,可以順利完成入網(wǎng)。這里我做一遍操作

    使用數(shù)據(jù)線連接設備后,我們可以用

    adb devices命令查詢到開發(fā)套件

    隨后鍵入 adb shell,使用命令行調試設備

    cd /data/cfg 進入到wifi配置文件的目錄下

    通過vi命令打開配置文件

    默認情況下家用路由器的話,只需要修改ssid(wifi名稱)和psk(password key)即可。

    若wifi有特殊情況,自行添加

    key_mgmt=WPA-PSK // 加密方式

    # key_mgmt=NONE // 不加密

    修改完成后保存配置

    隨后輸入

    wpa_cli reconfigure

    wpa_cli reconnect

    指令激活重新聯(lián)網(wǎng)

    此時此刻,我們就完成了設備入網(wǎng)了。

    語音識別、合成都需要用到網(wǎng)絡,所以一定要正確入網(wǎng)喔!

    (藍牙我目前用不到,所以暫時沒有繼續(xù)去配置)

    接著我們來嘗試啟動語音識別的demo程序,來看一看環(huán)境是否正常

    所有sdk資源及相關文件都在根目錄oem文件夾內

    根據(jù)產品說明書,我們需要先啟動 alsa_audio_main_service服務。

    啟動它之前,我們需要對目錄權限進行相關修改賦予權限后進行啟動

    multi_4_2 指的是使用4陣列板聲卡2。后臺啟動

    然后使用 ps -A檢查一下服務是否正確啟動在后臺中

    啟動了alsa服務后,我們就可以去前往中啟動demo了

    樣例程序文件位于/oem/BDSpeechSDK/sample目錄中, 運行時依賴lib、resources、extern目錄中的庫及資源文件。

    所以我們需要在啟動時共享庫

    關于共享庫可以看這里

    我們運行指令

    cd /oem/BDSpeechSDK/sample/wakeup

    LD_LIBRARY_PATH=/oem ./e2e_wp_asr_test

    試著喊一下小度小度,今天天氣怎么樣試試?

    可以發(fā)現(xiàn),這次套件采用了流式識別喔!附帶中間結果的!

    并且在3米遠的位置,使用悄悄話的方式呼喚小度小度,也能成功喚醒!

    可能在英語方面還有待加強吧~

    (也許是我的英語太散裝了)

    關于語音合成

    示例程序會將文本456hello你好今天天氣不錯傳送給服務器,由服務器生成對應的語音,保存為pcm文件,用戶可以進行播放體驗。

    在終端啟動語音合成功能,生成文本456hello你好今天天氣不錯對應的語音。

    cd /oem/BDSpeechSDK/sample/tts

    LD_LIBRARY_PATH=/oem ./online_test

    測試程序暫未提供用戶傳入合成文本生成語音的功能,用戶可以參照樣例程序自行開發(fā)。

    運行結束后,會在當前目錄下生成一個xxx.pcm,其中xxx是一個測試時的時間戳.在終端執(zhí)行如下命令體驗語音合成效果

    aplay -t raw -c 1 -f S16_LE -r 16000 xxx.pcm

    遠場語音識別套件之交叉編譯SampleCode

    經過了近一周的努力,總算能夠成功地將sample程序成功的交叉編譯出來了。

    本篇只針對如何成功交叉編譯,解決我遇到的問題而設立的。重點是交叉編譯的流程

    這邊我在mac上利用parallel部署了ubuntu虛擬機。為了重新確認一遍步驟,我重新裝了一臺機器并重頭進行了一遍步驟。并故意重現(xiàn)了我這幾天碰到過的錯誤及解決辦法,可能可以幫助到各位。

    這邊需要以下內容:

    下載SDK

    將rk3308板子內的oem內BDSpeechSDK目錄復制到虛擬機內。可以進行adb pull /oem/BDSpeechSDK指令download下來

    隨后將sdk放到虛擬機。我這里就直接放在了home根目錄

    rk3308的編譯在標準linux上是編不出來的。我們這里需要用到交叉編譯工具鏈,這是一個特殊的編譯器,可以認為是在A平臺編譯出B平臺才能運行的工具包。

    然后將交叉編譯鏈也復制到虛擬機里

    按要求構建項目工程目錄結構

    基于目前創(chuàng)建日期為4月23日的quick_start.md中所述

    mkdir my_specch_project

    cd my_speech_projects

    touch Makefile

    mkdir src

    touch src/main.cpp

    創(chuàng)建如下的目錄結構:

    my_speech_project/

    ├── Makefile

    └── src

    └── main.cpp

    我們到sample目錄下,創(chuàng)建project文件夾并創(chuàng)建src目錄,創(chuàng)建指定的文件

    編寫(copy) sample代碼

    sample/asr/wakeup/src中的e2e_wp_asr_test.cpp和在quick_start.md中都有相應的demo代碼,這里我就直接將wakeup/src中的sample代碼拷貝到這里替換main.cpp

    這里先不做任何改動,就照搬就行。目前的第一目的是盡快正確交叉編譯并成功在板子上跑起來

    編寫(copy) Makefile代碼

    makefile可以幫助工程快速連接編譯,他能省掉很多功夫。由于本人不是純正的c++開發(fā)工程師,所以這里copy了quick_start.md中的makefile代碼

    這里容易出現(xiàn)的第一個問題:

    照搬后由于縮進,當你ctrlCV時,極有可能將縮進一起復制過來,所以這里需要將代碼縮進都去除,保持整潔。在后面編譯時我會演示出現(xiàn)縮進的錯誤提示,這里我繼續(xù)保持原有的格式。

    嘗試編譯

    在quick_start.md中編譯部分,要求我們配置完成后,在Makefile所在的目錄執(zhí)行

    這里 path-to-cross-compiler-root需要替換成我們工具鏈的根目錄/bin即可

    /host其實就是我們工具鏈的根目錄

    那在我這樣的目錄環(huán)境,等效替換成了

    這里會出現(xiàn)很多問題。如果上方的操作跟我一樣,那你也很有可能碰到這些問題!

    錯誤1. Makefile:18

    由于特殊縮進導致的makefile編譯錯誤

    錯誤具體提示如下

    經過我多次測試,我打了很多空行也會錯在第18行這里。后來解決的方法就是將縮進全部去除就可以了!

    錯誤2.undefined reference

    消除了上方的縮進后再次進行編譯,會出現(xiàn)新的提示:

    這個錯誤是因為缺少alsa的so庫導致的。這個錯誤也被寫在了quick_start.md中

    如果遇到類似 ld: 找不到 -lbd_alsa_audio_client的錯誤,請開發(fā)者自行從官網(wǎng)下載alsa服務包或自行從開發(fā)套件中/ome/目錄下提取相關庫放到工程下參與鏈接即可。

    這邊我們從oem目錄中pull一個文件下來。他在/oem目錄下,名為libbd_alsa_audio_client.so。將它復制到BDSpeechSDK/lib下,這個目錄專門放外部依賴的庫文件,這個也放這里吧。

    然后再次嘗試編譯,沒有任何錯誤提示了,編譯通過

    然后在Makefile的同目錄上就可以看到一個main的可執(zhí)行程序了。這個程序是可以在rk3308的環(huán)境下執(zhí)行的。將它通過adb放到板子里。這里提醒下,tmp目錄在斷電后會清洗。

    (這里省略adb push ./main /tmp的過程)

    嘗試adb下打開main

    我們的main也依賴于alsa的服務,所以在這里直接將alsa設置成開機啟動得了。

    /oem/Rklunch.sh這個文件就是rk3308板子開機后會跑的一個執(zhí)行文件,我們可以把所有需要在開機時啟動的東西,都寫在這個文件里,這樣板子下次就會幫我們自動啟動alsa了。

    這里新增了幾行代碼,主要是改一下目錄權限,然后運行alsa服務。

    但是這一次還是沒有啟動的,需要自己手動啟動一下alsa。啟動方式就是上面5句話。

    這里也可以通過reboot指令重啟板子,但是tmp剛放進來的main文件就被洗掉了,但可以檢驗開機啟動是否正常,這個自行權衡吧~

    啟動alsa后我們去啟動main

    如果看到這個輸出,那么我們離成功不遠了。但是其中有一句輸出影響了整個程序。這不是編譯問題!

    錯誤3. dat file invalid

    error:5, domain:38, desc:Wakeup: dat file invalid., sn:

    這里意思是沒成功載入dat文件。

    我們看一下代碼。在wakeup_config函數(shù)中,可以看到它配置dat文件的路徑,是../../resources/esis_resource.pkg

    只要把這個層級改成絕對路徑,或者把路徑改短 ./esis_resource.pkg,并把pkg文件拷貝過來即可

    然后重新編譯,adb push到tmp下,這里省略

    記得把dat文件也push到tmp下,如果跟我的改法一樣的話

    然后再次執(zhí)行main

    可以發(fā)現(xiàn)喚醒進入回調激活了引擎加載和啟動喚醒。

    我們這時候可以嘗試使用了.

    小度小度,今天上海天氣如何?

    至此已經完成了demo項目工程的交叉編譯工作。

    這只是默認sample程序編譯出來的效果喔,還有很多隱藏功能帶解鎖。

    這是我7天來的努力成果,如果這篇文章對你有所幫助,請給一個贊吧~

    文章關鍵詞: 責編:Admin

    圖文推薦

    熱聞推薦

    天天新聞網(wǎng)版權所有

    報錯:admin@qq.com (非誠勿擾)   QQ: 123456

    贛ICP備17003504號