百度大腦遠場語音開發套件評測—快速上手,超贊語音交互體驗


近年來,人工智能話題越來越熱,受到了更多人的關注。百度從2010年開始人工智能技術開發,到現在已有8年多的時間,目前百度AI技術專利在中國甚至世界上都是名列前茅。

我大概在18年末開始接觸到百度AI社區,通過使用文字識別、圖像識別等百度AI技術,逐步感受到了AI技術的強大,同時也感覺到了百度AI技術的進步:AI技術領域范圍越來越廣泛,識別速度越來越快,識別准確度越來越高。這次,有幸收到百度遠場語音開發套件的測評邀請,作為一個非測試專業人員,這里我就自己的百度遠場語音開發套件使用過程及在使用過程中遇到的問題和大家分享一下,如有錯誤,請多多指教。

一、開箱

整個包裝很簡潔,就是一個白色的長方形盒子,正上方印着“百度大腦”標識。

打開盒子后,首先映入眼球的是一份“百度語音遠場開發套件說明書”,里面介紹了硬件購成、開發資料等信息。

拿出說明書,看到的是一個長方形的盒子,里面放着電源適配器、USB線。

拿出盒子后,便看到了百度遠場語音開發板主體了,被白色泡沫保護的很好。

接下來,一起具體看看遠場開發板的一些細節:

最后,看看百度遠場語音開發套件全家福:

百度大腦遠場語音開發套件,基於 RK3308 開發平台打造,提供的麥克風選型適用於智能音箱、智能 家電、車載設備場景,整個開發套件包含麥克風陣列板、開發板、喇叭以及符合聲學要求的腔體, 支持聲源定位、噪聲消除等信號處理算法,5 米內有效拾音,支持遠場喚醒、遠場識別、語音合成能 力,使語音開發評估更簡便、更高效。

RK3308 開發平台,采用 64 位 4 核 ARMCortex-A35 處理器 RK3308 系列,整合了高性能 CODEC(8 通 道 ADC + 2 通道 DAC),直接支持最大 8 通道數字 MIC 陣列+回采,實現高精度聲音采集及分析,是 一款集多種功能為一體針對音頻類應用的 AI+IoT 開發平台。 豐富的操作系統/服務支持,助力方便快速進行 AIOT 開發和產品應用。

關於百度遠場語音開發套件的更多介紹,可以參考這個鏈接:https://aim.baidu.com/product/b226a947-4660-4e27-83b4-877bf63b8627

 二、開發測試 

本次測試環境為Ubuntu 16.04 64ibt 虛擬機,開發平台是RK3308。

登陸開發板后,可以進入/oem 目錄,里面有開發相關說明以及一些測試示例。

(一)連接設備

1、安置在 adb 環境:sudo apt install adb

snow@snow-machine:~$ sudo apt install adb
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹       
正在讀取狀態信息... 完成       
下列軟件包是自動安裝的並且現在不需要了:
  snapd-login-service xdg-desktop-portal xdg-desktop-portal-gtk
使用'sudo apt autoremove'來卸載它(它們)。
將會同時安裝下列軟件:
  android-libadb android-libbase android-libcutils android-liblog
下列【新】軟件包將被安裝:
  adb android-libadb android-libbase android-libcutils android-liblog
升級了 0 個軟件包,新安裝了 5 個軟件包,要卸載 0 個軟件包,有 6 個軟件包未被升級。
需要下載 141 kB 的歸檔。
解壓縮后會消耗 428 kB 的額外空間。
您希望繼續執行嗎? [Y/n] y
獲取:1 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 android-liblog amd64 1:6.0.1+r16-3 [16.6 kB]
獲取:2 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 android-libbase amd64 1:6.0.1+r16-3 [9,014 B]
獲取:3 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 android-libcutils amd64 1:6.0.1+r16-3 [18.7 kB]
獲取:4 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 android-libadb amd64 1:6.0.1+r16-3 [53.2 kB]
獲取:5 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 adb amd64 1:6.0.1+r16-3 [44.0 kB]
已下載 141 kB,耗時 2秒 (48.3 kB/s)
正在選中未選擇的軟件包 android-liblog。
(正在讀取數據庫 ... 系統當前共安裝有 215288 個文件和目錄。)
正准備解包 .../android-liblog_1%3a6.0.1+r16-3_amd64.deb  ...
正在解包 android-liblog (1:6.0.1+r16-3) ...
正在選中未選擇的軟件包 android-libbase。
正准備解包 .../android-libbase_1%3a6.0.1+r16-3_amd64.deb  ...
正在解包 android-libbase (1:6.0.1+r16-3) ...
正在選中未選擇的軟件包 android-libcutils。
正准備解包 .../android-libcutils_1%3a6.0.1+r16-3_amd64.deb  ...
正在解包 android-libcutils (1:6.0.1+r16-3) ...
正在選中未選擇的軟件包 android-libadb。
正准備解包 .../android-libadb_1%3a6.0.1+r16-3_amd64.deb  ...
正在解包 android-libadb (1:6.0.1+r16-3) ...
正在選中未選擇的軟件包 adb。
正准備解包 .../adb_1%3a6.0.1+r16-3_amd64.deb  ...
正在解包 adb (1:6.0.1+r16-3) ...
正在處理用於 libc-bin (2.23-0ubuntu11) 的觸發器 ...
正在處理用於 man-db (2.7.5-1) 的觸發器 ...
正在設置 android-liblog (1:6.0.1+r16-3) ...
正在設置 android-libbase (1:6.0.1+r16-3) ...
正在設置 android-libcutils (1:6.0.1+r16-3) ...
正在設置 android-libadb (1:6.0.1+r16-3) ...
正在設置 adb (1:6.0.1+r16-3) ...
正在處理用於 libc-bin (2.23-0ubuntu11) 的觸發器 ...

 2、查看安裝結果:adb version

snow@snow-machine:~$ adb version
Android Debug Bridge version 1.0.32
Revision debian

3、查看硬件是否連接:adb devices

snow@snow-machine:~$ adb devices
List of devices attached
e9901a0bf326eb31    device

 4、連接硬件:adb shell 

snow@snow-machine:~$ adb shell
/ # ls
bin       lib       mnt       root      sys       usr
data      lib32     oem       run       tmp       var
dev       linuxrc   opt       sbin      udisk
etc       media     proc      sdcard    userdata

 (二)WIFI連接

1、進入/data/cfg 進行wifi配置:cd /data/cfg

使用 vi 編輯 wpa_supplicant.conf:vi wpa_supplicant.conf

在設置好 wpa_supplicant.conf 后,可以通過如下命令來重新聯網:

wpa_cli reconfigure
wpa_cli reconnect

 注意:第一次操作,調用 wpa_cli reconfigure 命令出錯:

/userdata/cfg # wpa_cli reconfigure
Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory

 切換聯網命令:wpa_supplicant -B -i wlan0 -c 

/userdata/cfg # wpa_supplicant -B -i wlan0 -c 
/data/cfg/wpa_supplicant.conf
Successfully initialized wpa_supplicant

/userdata/cfg # wpa_cli reconfigure
Selected interface 'wlan0'
OK

/userdata/cfg # wpa_cli reconnect
Selected interface 'wlan0'
OK

 雖然顯示操作成功,但是查看網絡連接,發現還是未成功連接(可以看到wlan0並未顯示IP地址):

/userdata/cfg # ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

p2p0      Link encap:Ethernet  HWaddr C6:60:34:AC:2C:AA  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr C4:60:34:AC:2C:AA  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1 errors:0 dropped:12 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:8555 (8.3 KiB)  TX bytes:7900 (7.7 KiB)

 重啟系統(如果一次不行,可以進行多次重啟),最后成功了(可以看到wlan0顯示了分配的IP地址-192.168.1.110):

/userdata/cfg # reboot
/ # ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

p2p0      Link encap:Ethernet  HWaddr C6:60:34:AC:2C:AA  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr C4:60:34:AC:2C:AA  
          inet addr:192.168.1.110  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2234 (2.1 KiB)  TX bytes:1481 (1.4 KiB)

 

 (三)運行語音識別示例

進入/oem目錄,查看語音能力相關文件: cd oem

/oem # ls
1K.wav             libbd_alsa_audio_client.so
BDSpeechSDK           libbd_audio_vdev.so
RkLunch.sh            lost+found
alsa_audio_main_service     readme.txt
config_open_platfrom_rk3308_4_2.lst  setup.sh
environment.md          version
libbdSPILAudioProc.so

 

 查看文檔說明:cat readme.txt

libbdSPILAudioProc.so
md5:29669122675b50bb21f738014dc04fe5

libbd_audio_vdev.so
md5:8184b0a37c4037cc2264fee6518ed8a8

libbd_alsa_audio_client.so
md5:ec46e6c27734a1c684b1ab8fab762fe6

集成和使用說明:
1. push庫到設備上
   adb push lib/libbdSPILAudioProc.so /data
   adb push lib/libbd_audio_vdev.so /data
   adb push lib/libbd_alsa_audio_client.so /data
   adb push conf/config_open_platfrom_rk3308_4_2.lst /data
   adb push setup.sh /data
   adb push bin/alsa_audio_main_service /data
   adb push bin/alsa_audio_client_sample /data
   adb shell sync
2. 創建目錄,修改權限
   adb shell;cd /data
   chmod +x alsa_audio_*
   chmod +x setup.sh
3. 運行main service
   ./setup.sh
   ./alsa_audio_main_service multi_4_2 &
   hw:0,0是對應的錄音設備的聲卡號和device號,也可以配置asound.conf,使用邏輯pcm設備名
4. 運行app,比如duer_linux, 需要添加/data目錄到duer_linux的動態庫鏈接路徑中
   也可以運行我們的sample程序
   ./alsa_audio_client_sample
   在當前目錄下會保存經過信號處理的錄音文件dump_pcm.pcm,是雙聲道,16K,小端,16bit位深音頻。

保存原始錄音數據的方法:
    啟動錄音前運行:
    mkdir -p /data/local/aw.so_profile
    touch  /data/local/aw.so_profile/dump_switch
    touch  /data/local/aw.so_profile/dump_switch_wakets
    mkdir -p /data/local/aud_rec/
    chmod 777 /data/local/aud_rec/
    
    看看配置文件的目錄
AUDCAP_DBG_SWICH        "/tmp/aw.so_profile/"
AUDCAP_DBG_FLDER        "/tmp/aud_rec/"
AUDCAP_DBG_SAVED        "/tmp/aud_rec/last/"
在/data/local/aud_rec目錄下會保存4路麥克風數據和2路參考數據,一路識別數據,一路喚醒數據。
文件的數據格式都是: 16KHz、小端、16bit、單聲道

 

根據文檔,相關文件應該在data目錄下,但是實際操作發現,相關文件在oem目錄下,故進入oem目錄,執行操作:

主要是運行以下四個命令(該命令是修改權限,啟動 alsa_audio_main_service服務,根據說明書,使用語音識別功能需要先啟動alsa服務):

chmod +x alsa_audio_*
chmod +x setup.sh	
./setup.sh
./alsa_audio_main_service multi_4_2 &

 執行上述命令后,可使用ps命令檢測alsa服務是否正確啟動:ps –A|grep alsa

 

根據說明書,BDSpeechSDK 目錄下的sample目錄中包含語音識別示例,由於語音識別運行時依賴lib、resources、extern目錄中的庫及資源文件,所以我們需要在啟動時共享庫。

關於共享庫可以看這里:https://www.cnblogs.com/mylinux/p/4955448.html

進入目錄,運行語音識別示例:

cd /oem/BDSpeechSDK/sample/wakeup
LD_LIBRARY_PATH=/oem ./e2e_wp_asr_test

 

喊“小度小度,今天天氣怎么樣”的識別結果:

可以發現,本開發套件采用了流式識別,附帶中間結果!

(四)語音識別效果測試

通過距離遠近,語速快慢,中間是否有隔離物(隔離物為電腦桌,顯示屏)等方式,對本開發套件進行了一次粗略的測試:

一米處:

有隔離:“一米一次喚醒測試”

有隔離,語速較快:“一米二次喚醒測試”

有隔離,語速較快:“今天天氣怎么樣”

無隔離,正常語速:“一米三次喚醒測試”

無隔離,語速較快:“今天天氣怎么樣”

2米處:(無隔離,正常語速)

“兩米一次喚醒測試"

“兩米二次喚醒測試”

“天天氣比較涼爽”

3米處:(無隔離,正常語速)

“三米一次喚醒測試”

“三米二次喚醒測試”

“聽說明天有台風”

5米處:(無隔離,正常語速)

“五米一次喚醒”

 

“五米二次喚醒”

“台風來了怎么辦”

6米處:(無隔離,正常語速)

注:首先需要較大聲喚醒小度,喚醒后,可識別正常音量的聲音:

“六米一次喚醒”

“六米二次喚醒”

 “今天天氣好晴朗”

測試結果:

經過上述的語音識別測試,可以發現,本套件在5米內可以達到比較良好的喚醒、識別效果,超過5米后,喚醒、識別效果下降比較明顯。

另外,對於一般性的用語,識別相當准確(即使達到6米,也能比較准確的識別),但是對於讀音相近的詞語(“一米”-“玉米”,“兩米”-“楊冪”等),識別准確性就有點差了(也可能跟發音有關)。

發音源跟套件之間是否有隔離物(非完全隔離),對識別的影響不是很大(沒有讀音的影響大)。

語速不是很快的情況下,一般也能正常識別。

總體而言,對識別結果影響較大的,除了距離外,就是讀音相近的詞語(發音)了。

(五)藍牙連接

輸入命令 :bt_realtek_start 即可啟動藍牙:

打開電腦的藍牙,可以發現名為realtek_bt的藍牙設備,嘗試進行配對:

配對成功:

配對成功后,就可以用藍牙進行音樂播放等操作了。
斷開藍牙連接:

測試發現的問題:

1、初次打開藍牙播放音頻時,聲音過大,調整聲音后,又發現最大聲音音量有的小了。

2、雖然本套件藍牙可以一次性連接多個藍牙(我嘗試了連接兩個藍牙設備),但是,兩個連接成功后,當用一個藍牙設備播放音樂,然后停止,再用另一個藍牙設備播放音樂時,發現播放失敗,只能用之前的那個藍牙設備播放音樂。

(六)錄音、播放音頻測試

 查看tmp目錄內容:cd tmp

進行錄音:arecord -D hw:2,0 -c 8 -r 16000 -f S16_LE  /tmp/test.wav

結束錄音后,查看目錄文件信息:

使用 aplay 命令就可以播放錄音文件:aplay test.wav

錄音效果還是不錯的。

(七)語音合成測試

示例程序會將文本“456hello你好今天天氣不錯”傳送給服務器,由服務器生成對應的語音,保存為pcm文件,用戶可以進行播放體驗。
進入語音合成示例目錄:cd /oem/BDSpeechSDK/sample/tts

執行語音合成操作:LD_LIBRARY_PATH=/oem ./online-test:

運行結束后,會在當前目錄下生成一個xxx.pcm,其中xxx是一個測試時的時間戳.在終端執行如下命令體驗語音合成效果:aplay -t raw -c 1 -f S16_LE -r 16000 xxx.pcm

 (八)交叉編譯

 1、下載SDK 

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

我這里就直接將整個/oem 目錄下載放到了“下載”目錄。

2、交叉工具鏈: 

鏈接: https://pan.baidu.com/s/1lEuFlAqfxhAsMQGmFJswTA

提取碼: we2t

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

我這里將交叉編譯鏈復制到虛擬機的桌面上了。

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

mkdir myProject
cd myProject
touch Makefile
mkdir src
touch src/main.cpp

 創建如下的目錄結構:

myProject/
├── Makefile
└── src
     └── main.cpp

編寫(copy) sample代碼

目錄sample/wakeup/src中的e2e_wp_asr_test.cpp中有相應的demo代碼,這里我就直接將wakeup/src中的sample代碼拷貝到這里替換main.cpp

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

 編寫(copy) Makefile代碼

 makefile可以幫助工程快速連接編譯,它能省掉很多功夫。由於本人不是純正的c++開發工程師,所以這里copy了 sample/wakeup/ 中的Makefile代碼:

#make src=src/***.cpp
FILE_NAME=$(src)
SYS_ROOT=$(sr)
TARGET=$(basename $(notdir $(FILE_NAME)))

#build
CXX=arm-rockchip-linux-gnueabihf-g++
INCLUDE=-I../../include -I../../include/ASR -I../../include/TTS -I../../extern/include -I../../extern/include/longconnect
CPPFLAGS=-Wall -fopenmp -O2 -fPIC -g -D__LINUX__ -Wl,-rpath=../../lib,--disable-new-dtags,--copy-dt-needed-entries -Wl,-rpath=../../extern/lib,--disable-new-dtags -L../../lib -lBDSpeechSDK -L../../extern/lib -lzlog -llongconnect -lnghttp2 -lcurl -lssl -lcrypto -lz -lAudioEncoder -liconv -lAudioDecoder -lhttpDNS -lbd_alsa_audio_client -lgomp -lrt -ldl -lpthread
ifneq ($(strip $(SYS_ROOT)),)
MY_SYS_ROOT=--sysroot=$(SYS_ROOT)
endif

SRC_PATH=./src
SRC_FILE=$(shell cd $(SRC_PATH)&&echo *.cpp)
SRC=$(foreach n,$(SRC_FILE),$(SRC_PATH)/$(n))

$(TARGET):$(SRC)
    $(CXX) -o $(TARGET) ./$(FILE_NAME) $(MY_SYS_ROOT) $(INCLUDE) $(CPPFLAGS)

#clean
LIST_ALL_FILES=$(shell find . -maxdepth 1)
SOURCES=. ./Makefile ./src
RM_FILES=$(filter-out $(SOURCES),$(LIST_ALL_FILES))

clean:
    -rm -rf $(RM_FILES)

 嘗試編譯: 

配置完成后,需要在Makefile所在的目錄執行:

export PATH=/home/snow/桌面1/rk3308_arm_tool_chain/bin:$PATH
make FILE_NAME=src/main.cpp SYS_ROOT=/home/snow/桌面1/rk3308_arm_tool_chain/arm-rockchip-linux-gnueabihf/sysroot

上述語句中的 /home/snow/桌面1/rk3308_arm_tool_chain 代表着工具鏈rk3308_arm_tool_chain的根目錄/bin,如果路徑填寫錯誤,會出現如下錯誤:

 

make: arm-rockchip-linux-gnueabihf-g++:命令未找到

 可以進入rk3308_arm_tool_chain 目錄 ,使用pwd命令獲取rk3308_arm_tool_chain 的路徑:

 

使用正確的路徑,重新編譯:

export PATH=/home/snow/桌面/rk3308_arm_tool_chain/bin:$PATH
make FILE_NAME=src/main.cpp SYS_ROOT=/home/snow/桌面/rk3308_arm_tool_chain/arm-rockchip-linux-gnueabihf/sysroot

 

如果出現上述錯誤,說明缺少alsa的so庫,我們可以從oem目錄中pull一個文件下來。他在/oem目錄下,名為libbd_alsa_audio_client.so。將它復制到BDSpeechSDK/lib下,這個目錄專門放外部依賴的庫文件,這個也放這里吧。

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

編譯成功,發現工程目錄下多了一個main文件,這就是我們編譯好的可執行程序了。

將main可執行程序復制到/tmp目錄(tmp目錄在斷電后會清空)下:adb push ./main /tmp

運行程序:

LD_LIBRARY_PATH=/oem:/oem/BDSpeechSDK/lib:/oem/BDSpeechSDK/extern/lib ./main

出現錯誤: 

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

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

我們看一下代碼。在wakeup_config函數中,可以看到它配置dat文件的路徑,是../../resources/asr_resource/esis_resource.pkg
只要把這個層級改成絕對路徑,或者把路徑改短 ./esis_resource.pkg,並把pkg文件拷貝過來即可。

 

然后重新編譯,adb push到tmp下,

還是這個錯誤,那是因為雖然改了文件路徑,但是我們還沒有把 esis_resource.pkg 也push到tmp文件夾里,進入 /home/snow/下載/oem/BDSpeechSDK/resources/asr_resource 文件夾,執行 adb push ./esis_resource.pkg /tmp:

再次執行,出現錯誤:error:-1, domain:10, desc:alsa_audio_client_open failed, sn: ,

因為我們的main也依賴於alsa的服務,所以需要開啟alsa服務:

cd /oem
chmod +x alsa_audio_*
chmod +x setup.sh
./setup.sh
./alsa_audio_main_service multi_4_2 &

 

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

執行成功后,再次運行main程序:

cd /tmp
LD_LIBRARY_PATH=/oem:/oem/BDSpeechSDK/lib:/oem/BDSpeechSDK/extern/lib ./main

執行成功。

(九)交叉編譯-語音合成

按照上面的方法,我們可以編譯一下語音合成示例(可以把合成的文字改為自己喜歡的,我這里就改成了“Hello World,今天時七夕情人節,中國的傳統節日!”,有條件的,可以嘗試輸入文本,再合成語音)。

編譯程序:

上述警告可以忽略。
把編譯完成的可執行文件下載到開發板並運行:

出現錯誤,仔細查看源代碼,發現main 函數中需要引用配置文件speech_sdk_log.conf,但路徑為 ../../resources/speech_sdk_log.conf:

並將speech_sdk_log.conf文件push到/tmp路徑下:

重新執行:

LD_LIBRARY_PATH=/oem:/oem/BDSpeechSDK/lib:/oem/BDSpeechSDK/extern/lib ./main

 

執行成功,可以看到/tmp目錄多了一個6832.pcm文件,運行命令 aplay -t raw -c 1 -f S16_LE -r 16000 6832.pcm,執行后,就能播放女生版的語音內容了。

 

三、產品建議 

經過一個星期的測試,發現百度遠場語音開發套件在語音喚醒、語音識別方面比較出色,識別率整體上准確很高,如果在發音相似的詞語方面多加訓練,效果會更好。此外根據個人的使用感受在產品的功能上提一些建議:

1、 提升音質,語音多樣化

未來提供更多不同風格的發音人,並可以讓用戶自主選擇,分別在進行購物、查詢信息、播放音頻資源等不同場景下有更多的音色供選擇適配。讓“小度”逐漸人性化、個性化。

2、 完善語音交互功能

提供更高質量的語音交互功能,加強對話理解和對話管理技術以及只是建設能力。通過不斷的練習,讓音箱能夠更加“理解”用戶的話語意思, 給用戶提供更加准確的結果,輕松定制專業、可控、穩定的完整語音交互能力。

3、 音色識別

在語音交互中,通過聲紋識別不同用戶音色,根據音色判斷交互內容並理解,可以將此功能利用在聲紋解鎖以及語音交互理解中,包括多人說話時執行命令的優先級。

語音交互未來可發揮的空間很大,但是現在的語音交互功能還不那么廣泛的,不過相信只要堅持發展,保持數據收集、場景優化,未來一定會在各個領域有更深度的拓展。

作者 :讓天涯


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM