VIVID 1.0.1.1 新增了语音识别与实时翻译的功能,可以用在直播里
点击 + => 物体 => 图层 => 文本 => 从左到右
(最后那个方向随意)
然后找到面板中的 “启用语音识别” ,把右边的 “否” 点成 “是”
这样就打开语音识别的功能了
在 “启用语音识别” 下方的 “识别模式” 中, 可以选择现有的识别模型
VIVID的这个目录(下图)是放语音识别模型的地方,只要是放在这里的模型都会自动被扫描出来
然后在上图面板的 “:: [./VData/Vosk/下载的模型解压出来的文件夹] :” 右边配置一下语种
就可以在 “识别模式” 里面选用了
VIVID内部内置了三个精简版的语音识别模型
语音识别的性能取决于模型本身的情况,若想提升精准度,可以到VOSK官网下载更大体积的模型
更多语言模型在这里下载: https://alphacephei.com/vosk/models
点击 “识别模式” 下方的 “翻译识别内容”,则可以翻译听到的内容
内置的翻译引擎是youdao的中文翻译,它会把其他语言翻译成中文
你还可以通过写一个插件来增加一个翻译引擎
插件VPlugins/GoogleTranslation是谷歌的中文翻译(只能在外网条件下使用)
该文件夹还有其源码工程 “src.zip”
做一个翻译插件主要分三步
一、继承自 VAPI.ITranslate
二、实现 public IEnumerator Translate(string ori, Action<string> onTranslate) 方法(ori是未翻译的源文本,onTranslate在翻译后被调用)
三、通过 VAPI.RegisterTranslateEngine<插件类名>(“面板显示的名称”) 注册到VIVID里
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | using System; using System.Collections; using UnityEngine.Networking; using System.Collections.Generic; using UnityEngine; public class TestGoogleTranslationEngineLoader : Component { public static void OnLoad() { VAPI.RegisterTranslateEngine<TestGoogleTranslationEngine>("google"); } } public class TestGoogleTranslationEngine : VAPI.ITranslate { public IEnumerator Translate(string ori, Action<string> onTranslate) { if (!string.IsNullOrEmpty(ori) && !string.IsNullOrWhiteSpace(ori)) { UnityWebRequest res = UnityWebRequest.Get("http://translate.google.cn/translate_a/single?client=gtx&dt=t&dj=1&ie=UTF-8&sl=auto&tl=zh_CN&q=" + ori); res.timeout = 5; yield return res.SendWebRequest(); if (res.isDone) { if (res.result == UnityWebRequest.Result.ProtocolError) { Debug.Log(res.error); } else { string result = Newtonsoft.Json.JsonConvert.DeserializeObject<GoogleResult>(res.downloadHandler.text).sentences[0].trans; Debug.Log(result); onTranslate(result); } } } } public struct GoogleResult { public List<GooglePair> sentences; } public struct GooglePair { public string trans, orig; } } |
🙂