(原創)用訊飛語音實現人機互動的功能

2022-02-17 06:43:10 字數 1377 閱讀 8632

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

這個就類似於人與機械人的對話,機械人在後台一直待命,使用者說話 機械人做出對應的反映。

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

具體怎麼做呢?

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

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

在程式啟動的時候先啟動喚醒,這個時候使用者說喚醒詞就會將機器喚醒,並 聆聽命令。但如果這個時候有播報資訊的話會優先播報資訊,播報的時候會將喚醒暫停,播報完成後再啟動喚醒。這麼做有乙個重要的原因是訊飛的喚醒是一直占用錄音資源的,而這個時候去播報語音會斷斷續續,聽說這個可以設定,但播報的時候用於一般也不會去說喚醒詞。

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

單純的喚醒會有乙個喚醒成功的**,比較簡單

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

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

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

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

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

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

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

iphone之使用訊飛語音sdk實現語音識別功能

2 學習裡面的demo簡單實現了乙個小的語音識別功能 先做乙個簡單demo,看看識別效果。注 語音識別必須聯網。所有介面必需在聯網狀態下才能正常使用。效果圖 uiimageview speechimage 聲音 iflyspeechrecognizer iflyspeechrecognizer 語音...

地面互動投影如何實現人機互動?

地面互動投影就是和地面上的影像進行互動的一種投影技術,不需要其他介質,我們直接使用腳或手與投影區域上的虛擬場景進行互動。地面互動具有很高的新奇性和觀賞性,可以很好活躍展廳,提高現場人氣。那麼地面互動投影怎麼實現人機互動的?地面互動投系統原理 採用懸掛在頂部的投影裝置把影像效果投射到地面,當參訪著走至...

語音識別的最終目標是真正實現人機互動

人工智慧一直是乙個有趣的話題。有教育背景的人,面對人工智慧發表意見,人工智慧的未來發展。2016年是人工智慧真正意義上的第一年。無論是人工智慧技術人員的儲備,還是技術產業領導者在人工智慧領域的投資,都在迅速創新。為什麼近年來智慧型家居的繁榮一直沒有起到作用,市場也看不到智慧型家居的產品,都是因為我們...