unity+vuforia的ar项目中,就继续完善功能,实现自动读文字。
使用RT-Voice在Unity中实现文字转语音(TTS)功能。
前言
愈加发现,AR的开发有转为ar foundation的趋势。外国博主近些年做的更多是ar foundation在unity中开发ar。
可能是因为,Vuforia收费劝退了一部分人,最新版的Vuforia将一些免费功能转为付费,尤其是三维模型识别的实现,也改的和大部分教程不一致,最好到Vuforia官网一步步学习最新方法。
一、在unity中如何实现文字换语音?
方法1:使用 系统自带语音引擎(适用于 Android、iOS),但不适用于 PC 编辑器(需真机测试)。
方法2:联网调用 AI TTS(如 Google Text-to-Speech),你也可以用 C# 发送单词给 Google Cloud TTS 或其他 AI 服务,让服务器返回语音文件。这需要,网络连接和获取API Key。
方法3:笨办法。每一个读的音频都在unity中导入音频文件。
方法4:RT-Voice插件,支持 Windows、Android、iOS、macOS,支持多语言 TTS(Google、Microsoft、macOS 语音),推荐。
RT-Voice:
-
无需联网,不依赖 Google 或 ChatGPT;
-
无需写 Java 插件,不需要自己打包
.aar
; -
跨平台:支持 Windows、Android、iOS、macOS;
-
Unity 编辑器中也能直接测试(不像系统TTS只能真机运行);
-
所有功能直接用 C# 控制。
所以我最终选择RT-Voice来实现。
二、使用RT-Voice实现文字转语音功能
1.导入RT-Voice
在资源商店中下载,现在我搜到的是rt-voice pro,下载这个就可以。
导入unity,自动生成一个插件文件夹,编辑器中弹出下图就是导入成功了
2.加入组件实现功能
在Tool中选择选择RT-voice,再选择configuration。
选择预制体界面,将这两个加入到场景中:
在SpeechText中,输入要读的文字。
下方voice中,Culture默认的是en,这只会读英文。改为zh,可以中文英文都读。
方便测试,可以一运行就读。就需要将这一项打上√。
3.按钮触发读文本
在场景中创建一个按钮,给按钮增加一个on click()。将SpeechText挂上,方法选择speak()。
(记得取消play on strat)
运行程序,测试成功。
总结
RT-Voice还有读取文本文件,转语音的功能,逻辑也差不多。