LoginSignup
2
0

More than 1 year has passed since last update.

Jetsonで日本語の音声認識【2021年版】

Posted at

はじめに

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 USERNAME@jetson.local

作業ディレクトリに移動

$ 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形式にしておきます。

config.guess

https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess

config.sub

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
".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

シェルスクリプトを作成

julius.sh
#!/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」を使った音声-テキスト変換の方がずっと正確で早いですね。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0