本教程适用于不借助第三方语音平台,仅用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,那样做没用,还报错
教程版本:Unity.3,VS,Windows10 64位
@Liam:有用→收藏→关注 听说长得好看的人都这么做!!!