C# 允许使用语音识别引擎拼写字母
我目前正在开发一个语音识别应用程序。为此,我要求允许用户拼写特定单词的字母,例如名称。我尝试使用grammarbuilder将字母表添加为选项,但它只能识别一个特定的字母 下面是我的代码C# 允许使用语音识别引擎拼写字母,c#,speech-recognition,speech-to-text,C#,Speech Recognition,Speech To Text,我目前正在开发一个语音识别应用程序。为此,我要求允许用户拼写特定单词的字母,例如名称。我尝试使用grammarbuilder将字母表添加为选项,但它只能识别一个特定的字母 下面是我的代码 public static class GrammarManager{ public static GrammarBuilder getAlphabet() { Settings.CultureInfo = "en-GB";
public static class GrammarManager{
public static GrammarBuilder getAlphabet()
{
Settings.CultureInfo = "en-GB";
GrammarBuilder dictaphoneGB = new GrammarBuilder();
dictaphoneGB.Culture = new System.Globalization.CultureInfo(Settings.CultureInfo);
dictaphoneGB.Append(new Choices("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"));
return dictaphoneGB;
}
}
public class SpeechEngine{
static System.Speech.Recognition.SpeechRecognitionEngine recognizer = null;
private void initializeEmulator()
{
GrammarBuilder builder = new GrammarBuilder();
builder.AppendDictation();
recognizer = new System.Speech.Recognition.SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-GB"));
recognizer.RequestRecognizerUpdate();
recognizer.LoadGrammar(new Grammar(GrammarManager.getAlphabet()));
recognizer.SpeechRecognized += recognizer_SpeechRecognized;
}
public void startEmulatorRecognition(string word)
{
recognizer.EmulateRecognizeAsync(word);
}
}
我通过启动一个特定的字符串parametr来调用startEmulateRecognition()方法。现在,当我将诸如“A”、“G”或“B”之类的值传递给特定的方法时,它会被识别。但当我通过“ABC”或“ABC”或“gogogle”之类的单词时,它们就不会被识别
如果有人能给我推荐一种方法来实现这一点,允许我识别拼写中的单词,如“gogogle”等,我将不胜感激
提前谢谢 您需要为重复使用另一个GrammarBuilder和构造函数来构造与重复序列匹配的语法:
private void lettterGrammar() {
GrammarBuilder letterGb = new GrammarBuilder();
Choices letterChoices = new Choices("A", "B", "C", "D);
GrammarBuilder speellingGb = new GrammarBuilder(
(GrammarBuilder)letterChoices, 1, 50);
Grammar grammar = new Grammar(spellingGb);
}
见