ツタンラーメンの忘備録

プログラミングや精神疾患、ラーメンについて書いていきます。たぶん。

node.jsで音声認識をする1

音声認識がしたかったので手軽にできるものを探しました。別に英語でよかったのですが、いろいろ探した結果
liginc.co.jp
こんな記事を見つけました。いいですね。なんか簡単そうです。

さっそくどんなもんか見てみるために下記サイトにアクセスして動きを見ました。
www.yoheim.net


paiza.hatenablog.com
さっそくこれを丸コピして使ってみます。

動かない

当然っちゃ当然で、サーバ側の処理何もしてないのでURLにhttpとかhttpsとか入っていないので、認証できないんですよね(たぶん)


というわけでサーバ側を描きます。今回はnode.jsを使います。
フォルダ構成は
voice.js
∟public-index.html
ああああ∟app.js
という感じにします。
index.htmlとapp.jsはそのままです。

npm install express path

してから

const http = require('http');
const path = require('path')
const express = require('express');

var app = express();
app.use(express.static(path.join(__dirname, 'public')));
var server = http.Server(app);
server.listen(process.env.PORT || 8080);

これ書いて

node voice

してlocalhost:8080にアクセスすればいいわけです。

動かない

どうやらFireFoxでは動かないようなのでChromeで動かします。
許可すれば動きました。
右クリックして「検証」を押して、コンソールで見れます。

日本語の精度はけっこういいです。けっこうというかかなりいいです。
なぜか英語が悪いです。悪いというか過学習気味なのか。単純に発音が悪いだけなのでしょうが…。英語やらねば。
公式のサイトにもデモみたいなのがあるのでそっちも使ってみてください。


さらに、継続的に音声認識する方法もあります。
適当に

recognition.continuous = true;
recognition.interimResults = true;

をつっこむだけです。いいですね簡単で。

それでも、しばらく音声がないと止まります。
それを解決するのが下記サイト
jellyware.jp
いい感じにずっとできます。あとはsocket.ioでnode.js側に飛ばしていろいろ処理します。