26
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

テスト書いてないと愚痴をこぼすと例のライオンのスタンドがデスクトップいっぱいに表示されるelectronアプリをつくった

Last updated at Posted at 2016-03-17

春です。テストの季節です。
そこで、「テスト書いてない」とPCの前でつぶやくと画面いっぱいに例のライオンのスタンドが光臨するelectronアプリケーションを書いてみました。
ぜひ、音声ありで見てみてください。

video

音声認識について全く伝わりませんが、gifもおいておきます。

screnshot

ダウンロード

以下のリンクからダウンロードできます。
なお、透明なアプリケーションなので、「テスト書いてない」と発言して動作確認してください。

Release akameco/twada-stand

windows版もありますが、動作確認していませんので、もし動かなかったらごめんなさい。
わたしのwin機はwindows10にアップデートしようとしたら失敗して無限に再起動を繰り返すようになってしまったので。

ソースコード: github

音声認識

electronからwebkitSpeechRecognitionを利用してます。詳しくはweb speech apiで検索するとよいと思います。
webkitSpeechRecognitionはwebから利用する場合は、実行前にユーザの許可が必要です。https環境は初回のみ、http環境だと毎回必要になります。が、electronの場合ユーザの許可なしで音声認識を始められます。localhostで利用してるようなものなので。
利用する際の注意点は以下にまとめたので参照してください。

electronでWebSpeecAPIの音声認識を利用するときの注意点 - Qiita

まあそんな記事読まなくても、一言で言うと、50回のリクエスト制限があるということです。

常時音声認識

音声認識終わったら次の音声認識をスタートさせることで認識させ続けてます。

const speech = new webkitSpeechRecognition();
speech.onend = () => speech.start();

まあこのせいでリクエスト制限がすぐにくるので、この方法が最も有効になるのはリクエスト制限のないChrome Appでしょう。しかしながら、ChromeAppは透明にできないので、今回は使いませんでした。

問題とかちょっと思ったこと

1つ目は、デスクトップの前で話したことを常時googleに送り続けること。なのでgoogleが邪悪な組織であると思っている人には、インストールを勧めません。

2つ目は、これは一般のelectronアプリに言えるのですが、ブラウザの場合タブにマイクのアイコンがついて音声認識してますよってわかりますが、electronの場合、音声認識中かどうかわからないことです。
さらに言うと、ブラウザでは本来ユーザの許可が必要なAPIが、electronでは許可無くユーザに気づかれることなく利用できることが個人的にちょっと引っかかります。

ソースコードはgithubにおいてあります。github

まとめ

テスト書いてない。

26
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?