c - 如何在 C 语言中集成语音到字符串检测器
问题描述
我是 C 编程的新手,我想开发一个统一的游戏,包括一些语音检测,以响应游戏玩家的选择。关于如何实现这一点的任何想法?
解决方案
对于所谓的 Speech To Text,您可以使用KeywordRecognizer或PhraseRecognizer作为 UnityEngine.Windows.Speech 的一部分。这是一个示例(在右侧的 Editor Inspector 窗格中填写单词):
using System;
using System.Text;
using UnityEngine;
// Put this check around any part you want to hide on other systems.
#if UNITY_STANDALONE_WIN
using UnityEngine.Windows.Speech;
#endif
public class KeywordScript : MonoBehaviour
{
[SerializeField] string[] keywords;
KeywordRecognizer recognizer;
void Start()
{
recognizer = new KeywordRecognizer(keywords);
recognizer.OnPhraseRecognized += OnPhraseRecognized;
recognizer.Start();
}
void OnPhraseRecognized(PhraseRecognizedEventArgs args)
{
print(args.text);
print(args.confidence);
}
}
请注意,至少在我们的项目中,根据特定的操作系统细节,一些用户在使其正常工作时遇到问题;当您考虑到各种操作系统语言设置时,它也会变得更加棘手。最重要的是,通常根本无法正确理解单词,但这也部分取决于您过滤了多少命令词;如果你只有少量的单词,并且允许高容错性,那么在这方面你可能会得到很好的结果。
另请注意,此库仅适用于 Windows,因此您需要其他方法,例如 Android 或 iOS。
推荐阅读
- java - 如何在给定节点号的情况下随机生成二叉树?
- shiny - 更改 Shiny checkbox() 的 CSS 属性
- bash - 在文件中搜索字符串,如果找到则复制该行
- ms-access - 将用户的主列表与每个用户有多个条目的第二个列表进行比较
- java - 如何在点击时更改标签颜色?
- opencv - 静态图像的背景减法
- javascript - 如何在加载 iframe 的内容后立即运行函数?
- android - 构建 maximo anaywhere 7.6.3.1 应用程序所需的 Android SDK Platform-tools 和 Android SDK Tools 版本是多少?
- eiffel - Eiffel:我在哪里可以找到包含常用功能列表的参考资料?
- php - Laravel 在任何编辑后都会给出 ERR_CONNECTION_RESET