gpt4 book ai didi

c# - 如何训练使用我的代码实现 system.speech 和 SpeechRecognitionEngine 的用户

转载 作者:太空狗 更新时间:2023-10-30 01:20:31 26 4
gpt4 key购买 nike

我已经使用 System.Speech.Recognition 命名空间进行编码,并使用语法和 SpeechRecognitionEngine 的 XML SRGS 文件。

我希望能够通过训练对我编写的应用程序很重要的单词或短语来引导用户。

我刚刚看到并阅读了这个How to train SAPI我知道这个例子使用了非托管 API(这个 api 公开了一点),但就引擎而言是完全一样的。

因此,如果我现在设置一个表格并按照链接中的说明开始培训。我可以在表格上有自己的文字并要求用户阅读此文字吗?然后按照链接中的指示结束培训。此过程将训练我已经使用 System.Speech.Recognition 命名空间编码的语音引擎。

如果我不正确是次要的,我让用户打开他们的系统面板,启动语音识别器并让他们将我的特殊短语口述到记事本中,直到大部分时间都正确为止。

还是只能建议他们做一般培训?

结论和其他一些事情C/C++ speech developers reference 比 Automation 引用包含更多内容。当您在此论坛中看到此处或其他来自 Eric Brown 和他的博客的帖子时,他很可能指的是 C/C++ 方法。

第一次在 Win 7 x64 位机器上使用下面的代码导致我得到一个“Class not registered”异常并且 Google 没有帮助我解决这个问题。我需要至少定位“anycpu”。

否则下面是完美的,它基本上启动了 UI 的训练部分,您可以从控制面板中的语音识别器界面获得,除非您有自己的文字。这太完美了。

最佳答案

一个更简单的替代方法是使用您自己的训练文本运行现有的训练 UI。自动化兼容的 API(Microsoft 语音对象库,又名 SpeechLib)公开了 IspRecognizer::DisplayUI , 你可以用你自己的 training text 来调用它.

训练文本需要是双空终止字符串,也称为多字符串。下面是一些将字符串数组转换为多字符串的代码:

static string StringArrayToMultiString(
ICollection<string> stringArray
)
{
StringBuilder multiString = new StringBuilder();


if (stringArray != null)
{
foreach (string s in stringArray)
{
multiString.Append(s);
multiString.Append('\0');
}
}

return multiString.ToString();
}

然后,要实际调用 DisplayUI,您需要执行如下操作:

static void RunTraining(string[] TrainingText)
{
SpSharedRecoContext RC = new SpSharedRecoContext();
string Title = "My App's Additional Training";
ISpeechRecognizer spRecog = RC.Recognizer;
spRecog.DisplayUI(hWnd, Title, SpeechLib.SpeechUserTraining, StringArrayToMultiString(TrainingText);
}

关于c# - 如何训练使用我的代码实现 system.speech 和 SpeechRecognitionEngine 的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18854820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com