当前在MHC_Talker中使用的离线语音识别系统是SherpaNcnn:
- GitHub 项目地址:
👉 https://github.com/k2-fsa/sherpa-ncnn - 示例模型与文档:
👉 https://k2-fsa.github.io/sherpa/
如果你希望更改或自定义语音识别模型,可以编辑 Plugins > MHC_Talker Content > Blueprints > Component路径下的Component_ASR:

1、音识别方案介绍 #
当前组件内集成了两套语音识别系统:
离线识别:SherpaNcnn
在线识别:科大讯飞

2、如何添加自定义语音识别 #
如果你希望在现有识别方案之外,接入自己的自定义识别模型,请按照以下流程操作:
在 Enumerator 下添加一个 Custom 项

在Custom 下接入对应的函数

3、以讯飞语音识别为例的接入步骤 #
下面以接入讯飞语音识别为例,说明具体操作流程:
步骤一:创建 ED_connect_xunfei 函数 #
用于程序运行时启动语音识别。
函数 Func Check Xun Fei Key 用于检查 API ID 和 API KEY 是否有效。
若无 API ID,请前往 讯飞官网 注册账号,并在控制台操作:

如图所示:新建一个应用;

在新建应用中,添加“实时语音转写标准版”,点击“申请购买”,可获得免费测试机会。

Connect Channel 函数(C++实现)用于连接讯飞服务器。Pause XF表示程序启动时需要暂停声音功能。
步骤二:创建 ED_communiteWith_XunFei 函数 #
用于绑定事件,返回识别结果,并将结果打印到 UI。
包含 ED Reconnect Xunfei,在讯飞15秒内未检测到音频时自动重连,避免识别关闭。
Resume XF 用于重新激活话筒。

步骤三:创建 ED_unbind_xunfei 函数 #
用于解绑事件,防止数字人说话时电脑声音被识别并发送到 UI。
实现关闭音频及解绑识别事件。

步骤四:创建 ED_close_xunfei 函数 #
实现安全退出语音识别,断开与讯飞的连接。

总结流程 #
整体流程如下:
- 连接语音识别 —— 选择 SherpaNcnn 或讯飞等方案
- 绑定语音识别 —— 输出识别结果,并打印到 UI
- 解绑语音识别 —— 对话时无需识别角色语音,避免干扰
- 关闭语音识别 —— 游戏退出时安全断开识别连接
End