日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(原创)用讯飞语音实现人机交互的功能

發布時間:2025/6/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (原创)用讯飞语音实现人机交互的功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目前在做一款車載的項目,其中有一個需求是在開車的時候實現人與手機的對話,全過程不需要用手,只用語音操控。

這個就類似于人與機器人的對話,機器人在后臺一直待命,用戶說話 機器人做出對應的反映。

但由于用戶手機電源的寶貴性,又不能讓用戶一直開著錄音監聽,這樣很耗費資源。因此使用了訊飛語音提供的喚醒功能。

具體怎么做呢?

看一張流程圖吧:這張流程圖使用了訊飛的大部分技術(語音喚醒、語音喚醒+命令詞識別、語義識別、語音合成),不廢話,看圖

流程圖已經寫的很清晰了,簡單介紹下

在程序啟動的時候先啟動喚醒,這個時候用戶說喚醒詞就會將機器喚醒,并 聆聽命令。但如果這個時候有播報信息的話會優先播報信息,播報的時候會將喚醒暫停,播報完成后再啟動喚醒。這么做有一個重要的原因是訊飛的喚醒是一直占用錄音資源的,而這個時候去播報語音會斷斷續續,聽說這個可以設置,但播報的時候用于一般也不會去說喚醒詞。

訊飛的喚醒有兩種模式:單純的喚醒和喚醒+命令詞識別

單純的喚醒會有一個喚醒成功的回調,比較簡單

而喚醒+命令詞識別不僅能夠喚醒,如果你在說喚醒詞的同時說了一個命令,那么他也會識別這個命令,你可以很干脆的收到這個命令去執行,而不需要在啟動什么語義識別后在執行命令了,這對用戶來說也是很爽的。

但是命令詞有一定的限制,就是命令詞使用之前必須先構建語法,而命令詞的內容必須得是提前知道的。但是如果用戶說了一個 石河子大學怎么走,這個命令在你的命令詞構建的語法文件里沒有!怎么辦?這時候你就得提示用戶讓用戶去語義輸入了。

所以我這里的構想是:用戶說命令詞,啟動喚醒,然后識別命令詞。識別命令詞成功執行命令,識別命令詞錯誤啟動語義識別。

這有個缺點就是用戶說了喚醒詞+語義識別的內容,語義識別的內容被命令詞消耗掉了,用戶只有再說一次語義識別的內容才可以識別語義。

為了避免這個問題,我們在喚醒詞識別后,如果命令詞不能識別的時候,用合成語音提示以下用戶“請問有什么可以幫您”,這個就代表機器沒有識別到用戶剛才的語義內容,需要 用戶重新說,我是不是很奸詐o(∩_∩)o?

接下來就是語義識別了,這個沒什么說的,主要的一點就是如果用戶不說話你要一直讓它保持錄音狀態嗎?當然不行啊,這多耗電啊!為了幫用戶省電,我還設計了一個用戶不說話20s自動進入等待喚醒的狀態的流程。20s怎么來?使用時間戳啊!就是每次用戶命令識別成功或者喚醒成功的時候記錄一個時間戳。然后下次再啟動語義識別前先判斷當前時間和時間戳時間是否相差大于20s,如果小于20s則繼續啟動語義識別,如果大于20s則啟動喚醒,準備讓用戶說命令詞來喚醒吧。

好了,差不多了。不要問我為什么不一直讓用戶說喚醒詞再執行對應的命令。如果你要干某一件事情之前總是還要說喚醒詞,我估計你會瘋掉的,即使你不瘋別人也會認為你是神經病的。沒有貶義,開玩笑,o(∩_∩)o 哈哈

?

?

我的github地址:https://github.com/dongweiq/study

歡迎關注,歡迎star o(∩_∩)o 。有什么問題請郵箱聯系 dongweiqmail@gmail.com qq714094450

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的(原创)用讯飞语音实现人机交互的功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。