unity 調用C#類將文字轉換爲語音

    以前做語音的時候都是調用事先錄製好的音頻來進行播放,但是這樣太不方便,而且即使是動態加載也會使壓縮包體積大大加大,今天終於找到了一個調用類就可以實現將文字轉換成語音狀態;

    在VS的引用中右鍵引用COM裏的Microsoft Speech  object  library類,,然後在代碼裏命名空間裏引用using SpeechLib;在需要把文字讀出來的地方加上代碼

using UnityEngine;
using System.Collections;
using SpeechLib;
public class Test : MonoBehaviour
{

void Update()
    {
SpVoice voice = new SpVoice();
            voice.Voice = voice.GetVoices(string.Empty, string.Empty).Item(0);
            voice.Speak("哈嘍我的");
}
}

注意!!!:圖中我圈住的寫的是版本號,如果是5.4的話就用SpVoice voice = new SpVoice();如果是5.1就用SpVoiceClass voice = new SpVoiceClass();來替換,這樣的話大家會發現在C#裏已經能正確的讀出來語音了,但是我們在unity裏卻發現會報錯缺少引用,這時候我們需要根據引用類的路徑找到相應的dll文件,路徑爲,找到一個sapi.dll文件,複製到unity的Assets文件下,這個時候會發現還是會報錯,這個時候大家點擊該文件會發現在unity的Inspector裏Type爲,而unity能打開的類型爲managed類,所以我們要重新生成解決方案,大家對VS熟練的話就不用我多講,初學者就直接保存工程重啓unity,在打開的時候由於工程保存時有錯誤,再打開時會跳出一個報錯框,直接點擊默認就是第一個,這個時候會在Assets生成一個Interop.SpeechLib.dll的文件,這個時候就會發現錯誤已經沒有了,在打開運行就會完美的運行成功,我下邊發佈自己的解決方案,大家放在assets也是可以用的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章