第一种方法
1.首先下载一个dll文件 Interop.SpeechLib.dll
放在unity Plugins文件夹里就可以了
下面上代码 脚本挂在任意地方运行即可
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using SpeechLib;
public class TTS_YuYin : MonoBehaviour
{
SpVoice voice;
// Start is called before the first frame update
void Start()
{
//实例化spvoice 对象
voice = new SpVoice();
//Item(0)中文语音 Item(1)英文语音
voice.Voice = voice.GetVoices(string.Empty, string.Empty).Item(0);
//语音速度 范围-10 到10 默认是0
voice.Rate = 0;
//语音音量 范围0到100 默认 100
voice.Volume = 100;
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Q))
{
//同步朗读(同步朗读时系统会卡在这里,关都关不掉 直到朗读完毕才会往下执行,建议使用异步朗读)
//voice.Speak("hello world 是大师级的卡拉胶SD卡圣诞节啊斯柯达SDKask大开杀戒的卡建档立卡");
//异步朗读
voice.Speak("狗是由狼驯化而来的。早在狩猎采集时代,人们就已驯养狗为狩猎时的助手。因此," +
"狗算是人类最早驯养的家畜。河北武安磁山、河南新郑裴李岗、浙江余姚河姆渡等遗址,都发现了狗骨骼," +
"足证其驯养历史之久远。 山东胶县三里河出土的狗形鬶,造型生动逼真,使我们得见新石器时代家犬的形态特征。" +
"陕西西安半坡遗址出土的狗骨,头骨较小,额骨突出,肉裂齿小,下颌骨水平边缘弯曲,与华北狼有很大区别," +
"说明人类驯养狗的历史确实很早。", SpeechVoiceSpeakFlags.SVSFlagsAsync);
}
if (Input.GetKeyDown(KeyCode.W))
{
//暂停使用该对象的所有朗读进程,同步朗读下无法使用该方法暂停
voice.Pause();
}
if (Input.GetKeyDown(KeyCode.E))
{
//恢复该对象所对应的被暂停的朗读进程
voice.Resume();
}
}
private void OnApplicationQuit()
{
voice.Pause();
}
}
下面是文件地址url:
复制直接下载
打包设置 ! ! ! 分Unity版本 有的版本打包出来没有声音
别人测试的2017.3版本的是不用调的,
我用的是2019.4.5f1版本的, 调到4.x打包出来没法运行,运行就崩溃,具体为什么暂时不清楚,(编辑器里面是好的,)
不调4.x 打包能运行,但是没声音,最后只能用插件了 RTVoice PRO
第二种方法RTVoice PRO插件的使用
下面是插件的地址 ()
链接:https://pan.baidu.com/s/1C6cvofGjQCA0XjUYCzeYzg
提取码:mg6h
下载之后导入unity
右击Hierarchy面板添加两个对象
这个一定要设置这样,要不然没有声音(如下图)
Mode 设置成 Speak Native
添加完成之后创建一个脚本
using Crosstales.RTVoice.Tool;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TTS_Spake : MonoBehaviour
{
public SpeechText speechText; //把刚创建的SpeechText拖上来创建连接
//public TextFileSpeaker speaker;//阅读文本里面的文字
void Update()
{
if (Input.GetKeyDown (KeyCode.I ))
{
speechText.Speak();
}
if (Input.GetKeyDown(KeyCode.O))
{
speechText.Silence();
}
//if (Input.GetKeyDown (KeyCode.K))
//{
// speaker.Speak();
//}
}
}
运行点击 I 即可听到 SpeechText 里面的text 内容
点击 按键O 静音 上面的静音是关闭当前的说话, 后面写程序的时候 ,要是连着点俩次就会有俩个重叠的声音
解决办法 Speaker.Silence();
speakr.SilenceOnDisable = false; (关闭所有语音播放)
注意如果你是要用中文,则需要切换到中文语种才能读,要不然报错(切换为ch或者cn都可以)
下面是他的语种
最后添加一个功能脚本
using Crosstales.RTVoice;
using Crosstales.RTVoice.Tool;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 文字转语音脚本
/// </summary>
public class TTS_YuYin : MonoBehaviour
{
public SpeechText speechText;
public static TTS_YuYin instance;
private void Awake()
{
instance = this;
}
//说话 有文字提示的
public void Speaking_speak(string strin)
{
GameObjecting.instance.NPCtext_panel.SetActive(true);
NPC_Text.instance.font_text.text = strin;
speechText.Text = NPC_Text.instance.font_text.text;
speechText.Speak();
}
//光说话没有文字提示的
public void Speaking_meiyouTiShi(string strin)
{
speechText.Text = strin;
speechText.Speak();
}
//静音
public void Speaking_silence()
{
speechText.Silence();
Speaker.Silence();
}
public void ShuiBianGuangGuangMoShi()
{
Speaking_speak(Type1_String());
}
public string Type1_String()
{
string ss = "你已经进入随便逛逛模式,在此模式下可以在厂房内随意走动观察," +
"但无法接取任务。点击1号NPC可以打开模式选择进入其他模式。";
return ss;
}
public string Type1_String(int aa)
{
string ss= string .Empty;
switch (aa)
{
case 0:
ss = "在机械拆装作业中,防护装备是必不可少的。下面我们一起对机器人拆装主要防护装备进行认识。" +
"根据箭头指引前往换衣间。";
break;
case 1:
ss = "在机械拆装作业中,拆装工具是必不可少的。下面我们一起对机器人拆装主要拆装工具进行认识。" +
"根据箭头指引前往工具台。";
break;
case 2:
ss = "机器人在进行拆卸前,需要进行一系列准备工作。准备工作包括清理工作场地、调整机器人位姿和" +
"机器人排油。下面,让我们完成机器人拆卸前的准备工作。";
break;
case 3:
ss = "由于机器人工作后的姿态各异,有些姿态不方便拆卸,所以在拆卸前需要对机器人进行位姿的调整," +
"让机器人处于一个合适的拆卸姿态。";
break;
case 4:
ss = "我们先检查自己的工作装备。进行机器的拆装时,必须穿戴好工作服、劳保鞋和戴好正确的手套。";
break;
case 5:
ss = "机器人的J5轴包含电机组件、手腕以及减速器三个部分。下面,让我们来学习J5轴的拆卸。";
break;
case 6:
ss = "机器人的J4轴包含小臂组件、电机组件和减速机组件。下面,让我们来学习J4轴的拆卸。";
break;
case 7:
ss = "机器人的J3轴包含电机组件和J3轴转座组件。下面,让我们来学习J3轴的拆卸。";
break;
case 8:
ss = "机器人的J2轴包含机器人的大臂、电机组件和J2轴减速机。下面,让我们来学习J2轴的拆卸。";
break;
case 9:
ss = "机器人的J1轴拆卸包含底座拆除、底座与J1轴转座分离、减速机拆卸等。下面,让我们来学习1轴的拆卸。";
break;
default:
break;
}
return ss;
}
}
View Code
以上就是插件的简单使用.(打包出来亲测可用)
(.NET Standard2.0 4.x都是可以的)
(补充: PC端打包出来只有自己电脑可以播放声音,换一台电脑就不行了,很迷茫 ,有知道是怎么回事的么?评论区可以告诉我,感谢 )
(解决办法PC打包没声音: 电脑系统是阉割版的,所以播放不了。如果不能正常播放,先下载“朗读女”这个软件,安装后,断网测试看能否播放,如果不能,说明系统缺少组件。百度搜索TTS修复工具(最好是官方的)修复即可。)。
Android 端打包出来是可以播放语音的