欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Unity 實(shí)現(xiàn)語音識(shí)別功能

 更新時(shí)間:2021年05月28日 16:23:20   作者:Mr-Miracle  
語言識(shí)別功能已經(jīng)在我們身邊普遍流行起來,在unity開發(fā)中語音識(shí)別也非常火熱,今天就介紹下Unity自帶的語音識(shí)別功能的實(shí)現(xiàn),感興趣的朋友跟隨小編一起看看吧

現(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è)命名空間

using UnityEngine.Windows.Speech;//引入命名空間

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

 // 關(guān)鍵字
    public string[] keywords = { "你好", "開始","停止" };

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

//創(chuàng)建一個(gè)識(shí)別器
	m_PhraseRecognizer = new KeywordRecognizer(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>
    /// <param name="args"></param>
    private void M_PhraseRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args)
    {
        print(args.text);
    }

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

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Windows.Speech;//引入命名空間  利用

/// <summary>
/// 語音識(shí)別(主要是別關(guān)鍵字)
/// </summary>
public class speechKey : MonoBehaviour
{
    // 短語識(shí)別器
    private PhraseRecognizer m_PhraseRecognizer;
    // 關(guān)鍵字
    public string[] keywords = { "你好", "開始","停止" };
    // 可信度
    public ConfidenceLevel m_confidenceLevel = ConfidenceLevel.Medium;

    // Use this for initialization
    void Start()
    {
        if (m_PhraseRecognizer == null)
        {
            //創(chuàng)建一個(gè)識(shí)別器
            m_PhraseRecognizer = new KeywordRecognizer(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>
    /// <param name="args"></param>
    private void M_PhraseRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args)
    {
        SpeechRecognition();
        print(args.text);
    }
    private void OnDestroy()
    {
        //判斷場(chǎng)景中是否存在語音識(shí)別器,如果有,釋放
        if (m_PhraseRecognizer != null)
        {
            //用完應(yīng)該釋放,否則會(huì)帶來額外的開銷
            m_PhraseRecognizer.Dispose();
        }

    }
    // Update is called once per frame
    void Update()
    {

    }
    /// <summary>
    /// 識(shí)別到語音的操作
    /// </summary>
    void SpeechRecognition()
    {
       
    }  
}

Demo下載地址:https://github.com/ShuxinWen/AutomaticSpeechRecognition-ASR-

到此這篇關(guān)于Unity 實(shí)現(xiàn)語音識(shí)別功能的文章就介紹到這了,更多相關(guān)Unity 語音識(shí)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論