詳解Unity 實(shí)現(xiàn)語音識(shí)別功能_第1頁
詳解Unity 實(shí)現(xiàn)語音識(shí)別功能_第2頁
詳解Unity 實(shí)現(xiàn)語音識(shí)別功能_第3頁
詳解Unity 實(shí)現(xiàn)語音識(shí)別功能_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第詳解Unity實(shí)現(xiàn)語音識(shí)別功能現(xiàn)在語音識(shí)別已經(jīng)被廣泛的應(yīng)用到各個(gè)領(lǐng)域中,在Unity開發(fā)中,語音識(shí)別也非常受歡迎。大部分人都會(huì)選擇科大訊飛的語音識(shí)別功能,但是在一些小的項(xiàng)目中,使用科大訊飛的就有點(diǎn)大材小用了。今天就介紹一下Unity自帶的語音識(shí)別功能。說是語音識(shí)別,其實(shí)unity本身還是做不到的,Unity自帶的語音識(shí)別功能其實(shí)是關(guān)鍵字識(shí)別。比如我在Unity中設(shè)定好一句話匯總的幾個(gè)關(guān)鍵詞。當(dāng)我再說這句話的時(shí)候就會(huì)和識(shí)別到。經(jīng)過測(cè)試發(fā)現(xiàn)當(dāng)一句話中有八個(gè)關(guān)鍵字,這句話就會(huì)非常好的被識(shí)別出來。

接下來就一起來實(shí)現(xiàn)一下:

首先貼一張效果圖:

場(chǎng)景我們沿用的是音頻可視化那篇文章里用到的場(chǎng)景。這里就不多做介紹了。Unity自帶的語音識(shí)別功能官方有API供參考,地址在這里(戳這里)

這里大家可以自行去看一下。下面開始介紹一下我們要實(shí)現(xiàn)的功能:

想要識(shí)別語音識(shí)別功能我們首先由先引用個(gè)命名空間

usingUnityEngine.Windows.Speech;//引入命名空間

然后定義一個(gè)string類型數(shù)組,這個(gè)數(shù)組就是存放那些我們要識(shí)別關(guān)鍵字。

//關(guān)鍵字

publicstring[]keywords={"你好","開始","停止"};

緊接著我們要在start方法中先創(chuàng)建一個(gè)語音識(shí)別器,這樣才能夠進(jìn)行語音識(shí)別

//創(chuàng)建一個(gè)識(shí)別器

m_PhraseRecognizer=newKeywordRecognizer(keywords,m_confidenceLevel);

//通過注冊(cè)監(jiān)聽的方法

m_PhraseRecognizer.OnPhraseRecognized+=M_PhraseRecognizer_OnPhraseRecognized;

//開啟識(shí)別器

m_PhraseRecognizer.Start();

接著是一個(gè)方法,這個(gè)方法主要就是用于識(shí)別到關(guān)鍵字后要做的事情

///summary

///當(dāng)識(shí)別到關(guān)鍵字時(shí),會(huì)調(diào)用這個(gè)方法

////summary

///paramname="args"/param

privatevoidM_PhraseRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgsargs)

print(args.text);

}

這樣基本上重要的部分就完成。下面是全部的代碼,在底部還有一個(gè)小Demo,感興趣的可以下載下來自行體驗(yàn)一下

usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

usingUnityEngine.Windows.Speech;//引入命名空間利用

///summary

///語音識(shí)別(主要是別關(guān)鍵字)

////summary

publicclassspeechKey:MonoBehaviour

//短語識(shí)別器

privatePhraseRecognizerm_PhraseRecognizer;

//關(guān)鍵字

publicstring[]keywords={"你好","開始","停止"};

//可信度

publicConfidenceLevelm_confidenceLevel=ConfidenceLevel.Medium;

//Usethisforinitialization

voidStart()

if(m_PhraseRecognizer==null)

//創(chuàng)建一個(gè)識(shí)別器

m_PhraseRecognizer=newKeywordRecognizer(keywords,m_confidenceLevel);

//通過注冊(cè)監(jiān)聽的方法

m_PhraseRecognizer.OnPhraseRecognized+=M_PhraseRecognizer_OnPhraseRecognized;

//開啟識(shí)別器

m_PhraseRecognizer.Start();

Debug.Log("創(chuàng)建識(shí)別器成功");

///summary

///當(dāng)識(shí)別到關(guān)鍵字時(shí),會(huì)調(diào)用這個(gè)方法

////summary

///paramname="args"/param

privatevoidM_PhraseRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgsargs)

SpeechRecognition();

print(args.text);

privatevoidOnDestroy()

//判斷場(chǎng)景中是否存在語音識(shí)別器,如果有,釋放

if(m_PhraseRecognizer!=null)

//用完應(yīng)該釋放,否則會(huì)帶來額外的開銷

m_PhraseRecognizer.Dispose();

//Updateiscalledonceperframe

voidUpdate()

///summa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論