Jetsonで日本語の音声認識【2021年版】
はじめに
Jetson Nano + Juliusで日本語の音声認識をやってみました。
メモを書き留めていたので、少し整理して書いてみます。
実用レベルでできることを期待。
必要な機器
・Jetson nano(ubuntu 18.04.6 LTS (Bionic Beaver))
・USBマイク(Jetson nanoに接続)
・USB Wi-Fiドングル(同上)
・Mac(ssh用)
・Wi-Fiルーター
必要なソフトウェア環境
・Julius(https://julius.osdn.jp/)
導入作業
MacのターミナルからJetson nanoへsshで接続します。
% ssh [email protected]
作業ディレクトリに移動
$ cd ~
$ mkdir julius
$ cd julius
ライブラリ類をインストール
$ sudo apt install build-essential zlib1g-dev libsdl2-dev libasound2-dev git-lfs
Juliusをダウンロード
$ git clone https://github.com/julius-speech/julius.git
Julius Japanese Dictation-kitのインストール
$ git lfs install
$ git clone https://github.com/julius-speech/dictation-kit.git
下記の2つのファイルをブラウザ等でダウンロードして、対象ディレクトリの同名ファイルに上書きします。
※ファイルに保存する場合は、UTF-8(BOM無し)で、改行はLFのみのUNIX形式にしておきます。
https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
config.guessを各ディレクトリへコピーします。
$ sudo cp config.guess ~/julius/adintool/
$ sudo cp config.guess ~/julius/jcontrol/
$ sudo cp config.guess ~/julius/support/
$ sudo cp config.guess ~/julius/msvc/Library_PortAudio/src/
$ sudo cp config.guess ~/julius/msvc/Library_PortAudio/src/bindings/cpp/build/gnu/
config.subを各ディレクトリへコピーします。
$ sudo cp config.sub ~/julius/adintool/
$ sudo cp config.sub ~/julius/jcontrol/
$ sudo cp config.sub ~/julius/support/
$ sudo cp config.sub ~/julius/msvc/Library_PortAudio/src/
$ sudo cp config.sub ~/julius/msvc/Library_PortAudio/src/bindings/cpp/build/gnu/
Juliusインストール
$ cd ~/julius
$ env CC=/usr/local/cuda-10.2/bin/nvcc CFLAGS=-O3 ./configure --enable-words-int
$ make -j4
$ ls -l julius/julius
マイク番号を確認
$ arecord -l
.profileを新規作成
$ sudo vi .profile
export ALSADEV="plughw:2,0"
source .profile
Juliusを実行
$ ~/julius/julius/julius -C ~/julius/dictation-kit/main.jconf -C ~/julius/dictation-kit/am-gmm.jconf -nostrip
シェルスクリプトを作成
#!/bin/bash
source .profile
~/julius/julius/julius -C ~/julius/dictation-kit/main.jconf -C ~/julius/dictation-kit/am-gmm.jconf -nostrip
実行権限を付与
sudo chmod u+x julius.sh
実行
$ ./julius.sh
実行すると以下のような入力待ちの画面になります。
### read waveform input
Stat: adin_alsa: device name from ALSADEV: "plughw:2,0"
Stat: capture audio at 16000Hz
Stat: adin_alsa: latency set to 32 msec (chunk = 512 bytes)
Stat: "plughw:2,0": Device [USB PnP Sound Device] device USB Audio [USB Audio] subdevice #0
STAT: AD-in thread created
<<< please speak >>>
「本日は晴天なり」とマイクに向かって発話すると
pass1_best: 本日 は 晴天 なる 。
pass1_best_wordseq: <s> 本日+名詞 は+助詞 晴天+名詞 なる+動詞 </s>
pass1_best_phonemeseq: silB | h o N j i ts u | w a | s e: t e N | n a r u | silE
pass1_best_score: -4696.621094
### Recognition: 2nd pass (RL heuristic best-first)
STAT: 00 _default: 14092 generated, 1645 pushed, 237 nodes popped in 190
sentence1: 本日 は 晴天 なり 。
wseq1: <s> 本日+名詞 は+助詞 晴天+名詞 なり+助動詞 </s>
phseq1: silB | h o N j i ts u | w a | s e: t e N | n a r i | silE
cmscore1: 0.606 0.981 0.638 0.418 0.158 1.000
score1: -4666.019043
<<< please speak >>>
となりました。
おわりに
個人的な感想ですが、ブラウザの「Web Speech API」を使った音声-テキスト変換の方がずっと正確で早いですね。
Author And Source
この問題について(Jetsonで日本語の音声認識【2021年版】), 我々は、より多くの情報をここで見つけました https://qiita.com/ko-p/items/576c82a06b50d469649b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .