こんにちは、えんせきです。
最近だとGoogleHomeからIFTTTとFirebaseを通してRaspberryPiにアクションを起こさせている例があって素敵でした。
qiita.com
つまりなにしたの?
RaspberryPiにJulius入れてとりあえず既存のディクテーションキットで話しかけられるようにする。
今日はJuliusをインストールして好き勝手な言葉を話しかけて文字列にしてもらう。
前回はなにしたの?
ensekitt.hatenablog.com
環境の準備を行った。
Juliusってなに? *1
音声認識システムの開発・研究のためのオープンソースの高性能な汎用大語彙連続音声認識エンジン。
汎用→普通の話し言葉
大語彙→たくさんの語彙
音声認識→音声を認識してくれる
C言語でつくられていて、商用利用も大丈夫みたい。すばらしい。
julius.osdn.jp
流れ
(準備編)環境の準備(先日の記事と重複があります)
(Juliusインストール編)Juliusとディクテーションキットのインストールして動作確認
(自前の辞書編)Juliusに好きな単語で話しかける
Juliusのインストール
https://github.com/julius-speech/julius#download-julius
から4.4.2(2018/03/27時点)をダウンロード
$ tar zxvf v4.4.2.1.tar.gz $ cd Julius-4.4.2.1 $ export CC=cc $ export CFLAGS=-O3 $ ./configure $ make $ sudo make install
RaspberryPiなのでシステムにインストールした。コンパイラはcc,最適化オプションをO3(実行速度に強力な最適化)にしています。
動作確認
$ julius --version JuliusLib rev.4.4.2.1 (fast) Engine specification: - Base setup : fast - Supported LM : DFA, N-gram, Word - Extension : LibSndFile - Compiled by : gcc -g -O2 Library configuration: version 4.4.2.1 - Audio input primary A/D-in driver : alsa (Advanced Linux Sound Architecture) available drivers : alsa oss esd wavefile formats : various formats by libsndfile ver.1 max. length of an input : 320000 samples, 150 words - Language Model class N-gram support : yes MBR weight support : yes word id unit : short (2 bytes) - Acoustic Model multi-path treatment : autodetect - External library file decompression by : zlib library - Process hangling fork on adinnet input : no - built-in SIMD instruction set for DNN NONE AVAILABLE, DNN computation may be too slow! Try `-help' for more information.
ディクテーションキットの準備
日本語の音声認識パッケージのディクテーションキットを用意する
GitHub - julius-speech/julius: Open-Source Large Vocabulary Continuous Speech Recognition Engine
から4.4(2018年3月28日当時最新)をダウンロードする
$ unzip dictation-kit-v4.4.zip
いろいろな構成があるみたいだけど、全部ふっ飛ばして実行する
ALSADEV="plughw:0,0" julius -C dictation-kit-v4.4/main.jconf -C dictation-kit-v4.4/am-gmm.jconf -nostrip -demo
最初のALSADEVでは、先日設定したマイクのデバイス番号を指定する。今回は0,0。
"-demo"をつけておくと解析結果の文字列のみ表示してくれるので、今回はそれをつけた
実行結果
$ ALSADEV="plughw:0,0" julius -C dictation-kit-v4.4/main.jconf -C dictation-kit-v4.4/am-gmm.jconf -demo -nostrip STAT: include config: dictation-kit-v4.4/main.jconf STAT: include config: dictation-kit-v4.4/am-gmm.jconf STAT: jconf successfully finalized STAT: *** loading AM00 _default Stat: init_phmm: Reading in HMM definition ### つらつらっと色々出る ### <<< please speak >>> # と表示されたら喋る。 pass1_best: 長ねぎ は 俺 の よ ね 。 sentence1: 長ねぎ は 俺 の 嫁 。
長ねぎは俺の嫁になりました。(困惑)
*1:前回の記事の再掲