2012-03-24 2 views
13

<input>タグ で、HTML 5 speech属性を設定して、ユーザーが期待する内容を定義する方法を探しています。
私はあなたが、grammar属性を経由して使用するには、このような 特定の文法を指定することができることを知っている:HTML5音声認識---ユーザーが動的に発言すると思われるものを設定する方法はありますか?

http://lists.w3.org/Archives/Public/public-xg-htmlspeech/2011Feb/att-0020/api-draft.htmlを参照)
<input type="text" speech grammar="grammar.grxml" />

を私はそう、これは、動的にする方法を期待していました私はユーザーがjavascriptを使って言うことを期待するものを指定することができます。

たとえば、ユーザーが音声で選択するアイテムのリストが動的に生成されている場合、そのアイテムのうちの1つである可能性が高いことをどのように指定しますか?

P.S. Google Chromeでこれをテストしています。したがって、speechの代わりにx-webkit-speech属性を使用し、grammarの代わりにx-webkit-grammarを使用しています。

+1

私はリストをサーバに送信し、サーバはアイテムを含む文法ファイルへのリンクを返し、gramman属性の値をサーバから得たリンクに置き換えます。これはうまくいくはずですが、私はクライアント側で完全にそれを行う方法を知らない。 – Tadeck

+0

私はHTML5にこのような機能があったことさえ知りませんでした。 +1の質問 –

+0

の@ JibiAbrahamええ、今、それのためのjavascriptのAPIがあります!次に見ていくこと。 http://updates.html5rocks.com/2013/01/Voice-Driven-Web-Apps-Introduction-to-the-Web-Speech-API – Stephen

答えて

3

新しいhtml5機能を使用してクライアント側で行う方法が見つかりました:blobs

window.URL = window.URL || window.webkitURL; 

var myGrammar = new Blob(["My custom grammar"], { 
    type: 'text/xml Or whatever is the proper MIME type for grammars'}); 

var grammarUrl = window.URL.createObjectURL(myGrammar); 

myInput = document.getElementById("myInput"); 

myInput.grammar = grammarUrl; 

これは、文法文字列からURLを行い、その後、私たちのinput要素について、そのURLを設定します。

このようにすると、サーバーのリクエストを行う必要がなくなり、サーバーの負荷が軽減されます。

ブロブの詳細については、thisthisを参照してください。

3

文法ファイルは、PHP、JSP、お気に入りのWeb開発言語などを使用して動的に生成できます。

<input type="text" speech grammar="grammar.php?some_var=foo" /> 

PHPは動的にクエリ文字列または保存されたセッション情報を通過した情報に基づいて文法を作成し、それを返します:文法ファイルは、あなたがPHPを使用している場合は、このような何かを持っていることができるようにHTTPを使用してフェッチされ音声エンジンに送信する。

関連する問題