3

ハンドヘルド デバイスでの音声認識は、通常、ボタンを押すことでトリガーされます。それなしで音声認識をトリガーするにはどうすればよいですか? 私のRaspberry PIベースのデバイスには、ユーザーが手動で操作できるものは意図的にありません.壁にぶら下がっているマイクだけがあります.

一連のアクションを開始する単純なトリガー コマンドを理解させる方法を実装しようとしています。つまり、オーディオ トリガーを「聞く」たびに、単一の .sh スクリプトを実行したいと考えています。スクリプトの名前やパラメーターなど、トリガー自体からデコードする必要があるという意味はありません。非常に単純な機能 - 「トリガーを聞く -> .sh スクリプトを実行する」

私はさまざまなオプションを検討しました:

  1. オーディオ ストリームを継続的に Google 音声認識サービスに送信する - あまり良い考えではありません - トラフィックとリソースの浪費が多すぎます

  2. インターネットレスの音声認識アプリケーションにオーディオ ストリームを継続的に聞いて、トリガー ワードを「選択」させることは、少しは良いことですが、リソースの無駄遣いであり、これらのシステムにはオーディオ サンプルを学習させる必要があります。カスタム名をデバイスに設定する

  3. ある種のピッチ処理を使用して、大きな音のシーケンスに反応するようにします - 手を 2 回たたくなど - 悪くはありませんが、適切にテストした後に手が落ちると思います。私は通常、夜にベッドにいるときにおもちゃを試すことができるので、家族の一員です。

  4. ホイッスルの認識 - 以前のオプションと大差ありませんが、手のひらが痛くなることはありません。ホイッスル コマンドを介してコンピューターに命令するという IBM の記事を見つけることができました。このアプローチは、ローカルの音声認識アプリケーションとほとんど同じですが、さまざまなホイッスル シーケンスを理解するように教えています。しかし、それでは、口笛の音色に関係なく、口笛だけを理解するように教える方法がわかりませんでした。

私はホイッスルのアイデアが好きです - それは他のオプションの中で最もリソースを必要としないように思われます - どうすればこれを行うことができますか?

Raspberry PI ハードウェアによって制限されている場合、簡単に実装できる他の音声トリガーはありますか?

4

2 に答える 2

0

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
    }

}
于 2013-03-13T02:59:11.800 に答える