首页 > 解决方案 > 如何在 C 语言中集成语音到字符串检测器

问题描述

我是 C 编程的新手,我想开发一个统一的游戏,包括一些语音检测,以响应游戏玩家的选择。关于如何实现这一点的任何想法?

标签: cunity3ddetectionvoice

解决方案


对于所谓的 Speech To Text,您可以使用KeywordRecognizerPhraseRecognizer作为 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。


推荐阅读