Unity TTS文字转语音 朗读 基于SpeechLib

本教程适用于不借助第三方语音平台,仅用Windows平台组件 进行文字转语音,基于SpeechLib

什么是TTS?TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话。

教程需要用到两个dll文件,我已近整合好了  下载地址←点我

1.新建Unity项目,新建空文件夹 Plugins 把下载到的dll文件放进去

2.编写脚本

using SpeechLib;//引入命名空间

public class VoiceDemo: MonoBehaviour
{
    public string str;//自己手动输入字符
    void Start()
    {
        SpVoice voice = new SpVoice(); 
        voice.Speak(str, SpeechVoiceSpeakFlags.SVSFlagsAsync);//不开子线程,朗读不卡(朗读内容,如果正在朗读,则停止,然后朗读当前的内容,用的异步)
    }
    
}

//------朗读停止方法----------------------------------------------
//停止方法要写,不然会卡。
voice.Speak(string.Empty, SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak);


//------------------------------------------------------------------
当然你也可以用 协程方法 来管理朗读,在读完了之后直接关闭,也可以另写方法 延迟调用。

3.挂载在一个空物体上,手动填一个字符开始运行就可以朗读了

如果不能正常播放,先下载“朗读女”这个软件,安装后,断网测试看能否播放,如果不能,说明系统缺少组件,BD搜索TTS修复工具(最好是官方的)修复即可。

如果打包失败 替换:CustomMarshalers.dll:在unity安装路径/Editor\Data\Mono\lib\mono\2.0文件夹里找到 复制、替换到项目中

注:不要在VS中添加引用speechlib,那样做没用,还报错

教程版本:Unity2018.3,VS2019,Windows10 64位

@Liam:有用→收藏→关注  听说长得好看的人都这么做!!!

发布了23 篇原创文章 · 获赞 6 · 访问量 1658

猜你喜欢

转载自blog.csdn.net/li1214661543/article/details/105655766
今日推荐