Linux 无互联语音触发识别
手持设备上的语音识别通常由按下按钮触发。如果没有它,我如何触发语音识别?我的基于Raspberry PI的设备故意没有任何用户可以手动交互的东西——墙上只有一个麦克风 我试图实现一种方法,让它理解一个简单的触发命令,该命令将启动一系列操作。简而言之,我希望在“听到”音频触发器时运行一个.sh脚本。我不想让它理解任何其他东西,只是一个触发器——它不需要从触发器本身解码——比如脚本或参数的名称。一个非常简单的函数-“hear the trigger->execute.sh script” 我探索了不同的选择:Linux 无互联语音触发识别,linux,speech-recognition,speech,raspberry-pi,human-computer-interface,Linux,Speech Recognition,Speech,Raspberry Pi,Human Computer Interface,手持设备上的语音识别通常由按下按钮触发。如果没有它,我如何触发语音识别?我的基于Raspberry PI的设备故意没有任何用户可以手动交互的东西——墙上只有一个麦克风 我试图实现一种方法,让它理解一个简单的触发命令,该命令将启动一系列操作。简而言之,我希望在“听到”音频触发器时运行一个.sh脚本。我不想让它理解任何其他东西,只是一个触发器——它不需要从触发器本身解码——比如脚本或参数的名称。一个非常简单的函数-“hear the trigger->execute.sh script” 我探索了不
如果我受到Raspberry PI硬件的限制,还有其他声音触发器可以轻松实现吗?Mono是一个可以安装在PI上的框架,允许您编译和运行C#应用程序,我相信它支持System.Speech和System.Speech.Recognition。你可以用这些来轻松编写一个应用程序,只需指定你想让它听的单词。把它写在你的电脑上,把exe移到pi上,然后用挂在pi外面的麦克风运行它。我做了一个类似的应用程序,但我使用了一个套接字服务器,并以这种方式发送命令。 设置命令的方式非常简单
SpeechRecognitionEngine rec = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US"));
rec.SetInputToDefaultAudioDevice();
rec.SpeechRecognized += speech_recognized;
var c = new Choices();
c.Add("Trigger");
var gb = new GrammarBuilder(c);
var g = new Grammar(gb);
rec.LoadGrammar(g);
rec.RecognizeAsync(RecognizeMode.Multiple);
rec.MaxAlternates = 0;
private void speech_recognized(object speechsender, SpeechRecognizedEventArgs e)
{
if(e.Result.Text == "Trigger"){
//run your script
}
}
看看nodejs流程,它处理来自麦克风的音频流事件,然后使用pocketsphinx离线语音识别和有限的自定义词典来识别简单的语音命令:
如中所述,可以使用Pocketsphinx完成