2013-04-13 12 views
14

まずは、私が永遠に働くとは思っていない一時的なソリューションを作成しようとしています。もしあなたが望めば、ちょうど実験!ページのGoogle音声検索の負荷

私は以下の動作をしています! 私がしようとしているのは、ページの読み込み時に音声検索を開始することです。 これを実現する方法のアイデア! 注:マイク入力を確認するには、クロムブラウザが必要です。

http://jsfiddle.net/dirtyd77/99amf/

<html> 
<head> 
<style> 

#mike { 
font-size: 25px; 
width: 25px; 
height: 25px; 
cursor:pointer; 
border: none; 
position: absolute; 
margin-left: 5px; 
outline: none; 
background: transparent; 
} 
#txt { 
height: 150px; 
width: 150px; 
} 
</style> 

<script> 
var mike = document.getElementById('mike'); 
mike.onfocus = mike.blur; 
mike.onwebkitspeechchange = function(e) { 
console.log(e); // SpeechInputEvent 
document.getElementById('txt').value = mike.value; 
}; 
</script> 
</head> 

答えて

2

ボタンクリックが不要なwebkitSpeechRecognitionを使用すると、アクティブにすることができます。次に、キャプチャしたテキストを入力してください。

webkitSpeechRecognitionは、マイクの使用を許可するようにユーザーに指示しますが、その権限が存在する限り、ページが読み込まれるとすぐにユーザーの入力を待ち受けることができます。サイトがHTTPSを使用していることを確認して、ブラウザーがユーザーに許可を一度だけ尋ねて覚えておいてください。

annyangは、音声認識を扱いやすいJavaScriptライブラリであることがわかります。

+0

HTTPSコメントを詳しく教えてください。または、その点に関するさらに詳しい情報とのリンク。ありがとう。 – Sharun

+0

ページで初めてWebkitSpeechRecognitionを有効にすると、ブラウザはこのサイトにマイクを使用する許可を与えるように求めます。 HTTPSでホストされているページは、HTTPでホストされているページとは異なり、アクセス権を繰り返し求める必要はありません。 あなたはhttp://www.talater.com/annyang/とhttps://www.talater.com/annyang/を比較することで違いを見ることができます –

+0

ありがとうございますこれは非常に便利な情報です。 annyangの素晴らしい仕事は、単純なfacebook.jsの実装が好きでした。 – Sharun

-2

心に来る最初の事はjQueryのを使用することです。

$(document).ready(function(){ 
    startMikeInput(); 
} 

ページの読み込みが完了すると、マイクの入力が開始されます。スクリプトタグ内のjQueryも参照する必要があります。外部のjsファイルを使用することも参考になります。

+0

私は運がないとこれを試しました。 : –

+0

ローカルで実行している場合は、jQueryをダウンロードして正しく参照する必要があります。これまでに問題が発生しました。 – user2276585

+0

startmikeInput();は何もしない問題です –

2

あなたがこのアプローチを試してみました:

x-webkit-speech: onwebkitspeechchange not resting the value

あなたは、彼らが完全に

onwebkitspeechchange="webkitSpeechChange(this);" 

経由で何かをやっている例を見れば、私はあなたにそれを追加する必要が想像しますあなたのコード。

+0

問題はマウスをシミュレートしていますマイクボタンをクリックしてください!何も動作していないようです –

+0

多分、ここに何か不足していますが、あなたのフィドルであなたは決して宣言していない機能を呼び出していますか? – RandomUs1r

13

残念ながら、これは不可能です。最も重要な理由は、invasion of privacy/security hazardであるということです。ユーザーはとなります。を選択する必要があります(この場合は、マウスを使用します)。イベントをエミュレートすることができ、ユーザーが記録されていることに気付かない場合、深刻な法的影響が生じる可能性があります。お役に立てれば!


UPDATE:

これはdocument程度Speech Inputからです:無意識のうちに実装は中止しなければならない、彼らの知識がなくてもWebページのレコードスピーチを聞かせてユーザーの機会を最小限に抑えるために

ウェブページが別のウィンドウまたは同じユーザエージェント内の別のタブに入力フォーカスを失った場合、アクティブな音声入力セッション。ここで

は、同じdocumentから懸念されている:

1)音声パスワードの入力は、セキュリティの観点から問題となる可能性があるが、それは彼らが自分のパスワードを話すかどうかを決定するために、ユーザー次第です。

2)音声入力を使用してユーザーを盗聴する可能性があります。悪意のあるWebページでは、入力要素を隠すなどのトリックを使用する可能性があります。そうしないと、音声の録音が中断されているとユーザーに信じさせます。また、入力要素を他のものとして表示するようにスタイルを設定し、ユーザーをクリックするように誘導することもできます。ファイル入力要素のスタイリングの例はhttp://www.quirksmode.org/dom/inputfile.htmlにあります。上記の推奨事項は、このような攻撃のリスクを低減することを目的としています。

また、this article from html5rocks.comによると:

使用されている最初の時間の音声認識は、Chromeは、マイクを使用する許可をユーザーに依頼する必要がある場合ONSTARTのみ火災時の場合は、ユーザーで許可します。これを考慮して

ほぼ不可能ではない場合、それはGoogleがmalicious webpagesから保護するための措置をとっているため、ユーザーの同意なしonloadイベントを実装するために、非常に困難だろう。 Googleはまた、ユーザーがsimulating click eventsになるのを防ぎました。

+0

これは不可能か法的問題ですか?とにかく私は法的な影響について心配していないので、私は認識しています:)を使用します。しかし、情報をありがとう。 –

+0

http://lists.w3.org/Archives/Public/public-xg-htmlspeech/2011Feb/att-0020/api-draft.html#securityユーザエージェントは、明示的で十分な情報に基づいたユーザの同意を得て音声入力セッションを開始する必要がある。ユーザーの同意には、たとえば、このWebページの音声入力を常に許可するために以前に付与された同意が含まれます。 –

+0

@tman私はオリジナルの投稿にもっと多くの情報を追加しますが、私はそれに答えるでしょう:) – Dom

4

原料の束をしようと研究した後、私はことを発見:あなたはプログラムで音声入力をアクティブにすることはできません

。これは乱用を防ぐためです。 https://code.google.com/p/html5rocks/issues/detail?id=594

これはgoogleからです。

jFiddleの仕事をするために地獄のように試してみました。 jquery関数の束を使用し、クリックをシミュレートするターゲット、いくつかのサードパーティ製のものを使用しました。

+0

このページには、「このウェブページの音声入力を常に許可するように以前に同意した同意」と記載されています。この場合、問題の原因はどこですか? –

+0

最初は間違ったリンクを投稿したと思います。 googleのフォームへの実際のリンクの代わりにGoogleフォーラムにリンクを投稿しました。すべて確定しました。これを解読しようとしましたが、行っていません。最初は私はそれが問題を抱えているjFiddleだと思っていましたが、それを修正できなかったとき、私はGoogleの開発者がクロムコードでこれをブロックしていたことがわかりました。 – newUserNameHere

+0

非常に興味深い.... hmm –

関連する問題