この記事は『CRESCO Advent Calendar 2020』 4日目の記事です。
こんにちは。
エクスペリエンスデザインセンターのsgi-changです。
今年もアドベントカレンダーに参加できて嬉しいです。
そして今年もせっかくのアドベントカレンダーなのでまたワクワクしたいなと、
今日はブラウザで音声認識を使ってみようと思います。
使った技術は以前のブログにも登場した Web Speech APIです。
ざっくり説明すると、
Webアプリ上で「音声認識」「音声合成」を使うことができるWeb APIのひとつ
です。
簡単に実装方法をご紹介します。
音声認識を使いたい場合は、
const recognition = new webkitSpeechRecognition(); |
をして次に、各プロパティを指定します。
recognition.lang = "ja-JP"; |
recognition.continuous = true; |
recognition.interimResults = true; |
recognition.start(); |
recognition.onresult = function (event) { |
// omit |
}; |
recognition.onspeechend = function (event) { |
// omit |
}; |
recognition.onend = function (event) { |
// omit |
}; |
これだけで、Webブラウザ(Chrome)で音声認識ができてしまいます。
簡単、お手軽、そして楽しいーーーーーーーーっ!!
かなりお気に入りのAPIです。おすすめです。
ところで、音声認識を使って何がしたかったかというと…
先月、私が所属している部活、デザインラボの部会があり、その中で金井さんから
というアイディアを頂き、
聴覚だけではなく視覚からも情報を得ることができて、アクセシビリティに考慮していて、そして面白そう!
と思って今回、コラボさせて頂きました。
会話の文字は吹き出しではないのですが、前に実装したドラクエ風コマンドで実装してみました。(本当、好きだねえ…)
またまたCodePenで実装してみました。(本当、好きだねえ…)
良かったら遊んでみてください。そしてリモートとかで使ってもらえると嬉しいです。
※動作するブラウザが限られているのでご注意下さい。(主にChrome)
※「Start」ボタンを押すと始まります。ビデオ、マイクの使用を許可願います。
※マイクは音声認識がすぐ切れるので頻繁に開始を走らせています…すみません。
ところでこのビデオ文字コミュニケーション、既に某有名メディアアーティストの方が実装していました。
そこでプラス、何かアイディアを足そうと思って、顔認識も追加してみることに。
face-api.js というJavaScriptのAPIを使ってみました。
face-api.jsはGoogleが提供しているオープンソース機械学習プラットフォームのJavaScript向けTensorFlow.js上に実装されているAPIで、顔検出・顔認識を実現できます。
やったことは、たったひとつ。
ちょっと恥ずかしいなあ、顔全部出したくないなあと思った時に、目隠しを入れてみようかと。
そう、あの黒い棒です。
そしたら結果、なんだかシュールなことになってしまいました(笑)
「目隠し」と発話すると目の位置に黒い棒が出現します。
消したかったらもう一度「目隠し」と言ってみてください。
ずれていたら…すみません。
正直、canvasとvideoと座標を合わせるのめちゃくちゃ苦戦しました…
今度は、このアイディアの話を他の方に話したところ
と逆の発想を頂きました。
すごい!アイディアの連鎖!面白い!
それはさすがに難しいなあと思ったのですが、なんとface-api.jsは顔の表情が取得できるらしいのです!
neutral ニュートラル happy 喜び sad 悲しみ angry 怒り fearful 恐れ disgusted うんざり surprised 驚き |
などなど。
さらに年齢や性別も推定するらしい。
すごいですね!
色々面白いことが出来そうです。
ぜひこちらも挑戦してみたいです。
今やWebブラウザ上で色んなことが出来るようになってワクワクが止まりません。
最後までお読みいただき誠にありがとうございます。