前提
環境:mac book pro
実現したいこと
mac book proにて音声認識(julius)を試したいと思っております。
日本語の認識ではなく英語の認識です。
ネットで調べつつ色々な方法で試し、エラーにも対応しているのですがなかなかうまくいきません。
行った手順
①下記URLから最新の方法(結論:macにCUDA GPU搭載していないため不可)
=====CUDA GPU用 Julius 4.6=====
Mac OS (Big Sur)に音声認識エンジンJuliusをインストールしたときの記録
terminal
1mkdir voicerecog 2cd voicerecog 3brew install build-essential zlib1g-dev libsdl2-dev libasound2-dev 4brew install portaudio 5git clone https://github.com/julius-speech/julius.git 6cd julius 7julius % ./configure --with-mictype=portaudio --enable-words-int 8make 9make install
download
https://sourceforge.net/projects/juliusmodels/
terminal
1mv -v ~/Downloads/ENVR-v5.4.Dnn.Bin.zip ~/voicerecog/ 2 3tar xvzf ENVR-v5.4.Dnn.Bin.zip 4 5cd ENVR-v5.4.Dnn.Bin 6 7user@usernoMacBook-Pro ENVR-v5.4.Dnn.Bin % julius -C mic.jconf -dnnconf dnn.jconf
この時は、CUDAがないよとエラー、この時点で私のマックブックプロではjulius4.6の最新版は利用できないと判断してバージョンを下げて実行しようと思い、②の方法にうつりました。
②バージョンを落としてGPU不要のやり方で英語音声認識
=====Julius 4.4.2=====
mkdir voicerecog
cd voicerecog
terminal
1user@usernoMacBook-Pro voicerecog % mv -v ~/Downloads/julius-4.4.2.tar.gz ~/voicerecog 2 3tar xvzf julius-4.4.2.tar.gz 4
'jlog' is invalid in C99のエラー解決方法
具体的には以下
libsent/src/adin/adin_mic_darwin_coreaudio.c line
1#include <sent/stddefs.h>
ENVR
1#um_threads 1 をコメントアウト
terminal
1user@usernoMacBook-Pro julius-4.4.2 % ./configure --enable-words-int 2make 3./configure
ただ、configureの時点で以下のエラーが出ていました。
terminal
1gcc -g -O2 -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_LIBREADLINE=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_READLINE_READLINE_H=1 -DHAVE_LIBREADLINE_HISTORY=1 -DHAVE_READLINE_HISTORY_H=1 -o gram.tab.o -c gram.tab.c 2/usr/share/bison/bison.simple:573:16: error: implicit declaration of function 'yylex' is invalid in C99 [-Werror,-Wimplicit-function-declaration] 3 yychar = YYLEX; 4 ^ 5/usr/share/bison/bison.simple:219:18: note: expanded from macro 'YYLEX' 6# define YYLEX yylex () 7 ^ 8/usr/share/bison/bison.simple:799:2: error: implicit declaration of function 'yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration] 9 yyerror ("parse error"); 10 ^ 11/usr/share/bison/bison.simple:924:3: error: implicit declaration of function 'yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration] 12 yyerror ("parser stack overflow"); 13 ^
英語の音声認識キットの入手
Download
terminal
1user@usernoMacBook-Pro voicerecog % mv -v ~/Downloads/ENVR-v5.4.Dnn.Bin.zip ~/voicerecog 2 3user@usernoMacBook-Pro julius-4.4.2 % tar xvzf ENVR-v5.4.Dnn.Bin.zip 4 5user@usernoMacBook-Pro ENVR-v5.4.Dnn.Bin % julius -C julius.jconf -dnnconf dnn.jconf
いま発生している問題・エラーメッセージ
【実行】
terminal
1user@usernoMacBook-Pro ENVR-v5.4.Dnn.Bin % julius -C julius.jconf -dnnconf dnn.jconf
【エラー】
terminal
1・ 2・ 3Stat: dnn_layer_load: loaded ENVR-v5.3.layerout_weight.npy 4Stat: dnn_layer_load: loaded ENVR-v5.3.layerout_bias.npy 5Stat: dnn_init: state prior loaded: ENVR-v5.3.prior 6Stat: calc_dnn: FMA instructions built-in 7Stat: calc_dnn: AVX instructions built-in 8Stat: calc_dnn: SSE instructions built-in 9Stat: clac_dnn: use FMA SIMD instruction (256bit) 10STAT: *** AM00 _default loaded 11STAT: *** loading LM00 _default 12Error: voca_malloc: maximum dict size exceeded limit (65535) 13Stat: init_voca: read 65535 words 14Stat: init_ngram: reading in binary n-gram from ENVR-v5.3.lm 15Error: ngram_read_bin: cannot handle 4-bytes bingram 16Error: ngram_read_bin: please use Julius compiled with --enable-words-int 17Error: init_ngram: failed to read "ENVR-v5.3.lm" 18ERROR: m_fusion: failed to initialize N-gram 19ERROR: Error in loading model
コンパイル時にplease use Julius compiled with --enable-words-intのオプションは付けているにもかかわらず、上記のようにplease useと出ております。
かなり苦戦しております。
どなたかアドバイス頂けないでしょうか。
よろしくお願い致します。
追記)
他のOSであればうまくいったなど、もしくは、英語のマイクで音声認識をリアルタイムに行いたいのですが、pythonなどの構築方法でいま最適な方法などご存知の方、知見ある方、このサイトがよい、参考書が良いなどありましたら教えて頂けないでしょうか。よろしくお願い致します。
追記2)2022年4月10日
他のOS(Linux Ubuntu18.04)で試してみたところ、日本語の音声認識ができるところまでは進みましたが、精度がかなり悪いのと、英語認識ではないのでもう少しみてみます。手順は以下でした。
Ubuntu 18.04 で Julius を使う
こちらのサイトを参考にしました。
terminal
1git clone https://github.com/julius-speech/julius 2cd julius 3./configure 4make 5sudo make install 6git clone https://github.com/julius-speech/grammar-kit 7cd grammar-kit/SampleGrammars/fruit 8julius -C testmic.jconf -nostrip -charconv SJIS UTF-8
ここで以下のエラーがでました。
Stat: adin_oss: device name = /dev/dsp について
その対応策のリンク
①sudo apt-get install osspd-alsa
さらなるエラー:/var/lib/dpkg/lock-frontend が取得できませんでした - open (11: リソースが一時的に利用できません)
対応策のリンク
sudo rm /var/lib/apt/lists/lock
sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/dpkg/lock-frontend
②sudo aptitude install libasound2-dev
③./configure --with-mictype=alsa
④sudo make
⑤sudo make install
再度実行
cd grammar-kit/SampleGrammars/fruit
julius -C testmic.jconf -nostrip -charconv SJIS UTF-8
これで日本語音声認識できるようになりました。しかし本来の目的は英語認識ですのでもう少し変えてみます。取り急ぎ報告です。
あと低評価について2つ来ている理由として、どのように書き方を改善したらよいかアドバイス頂けないでしょうか。お手数ですがよろしくお願いいたします。
あなたの回答
tips
プレビュー