LoginSignup
4
3

More than 1 year has passed since last update.

Windows環境のPythonで大語彙連続音声認識エンジン Julius を使う方法

Last updated at Posted at 2022-03-13

Juliusの準備

Juliusのダウンロード

Juliusのダウンロードはこちらから(今回は julius-4.6-win32bin.zip をダウンロード)

Cドライブの直下に「Julius」というフォルダを作成する。
ダウンロードしたファイルの展開後、C:/Julius/ にコピーする。

音声認識パッケージのダウンロード

音声認識パッケージのダウンロードはこちらから(今回は dictation-kit-4.5 をダウンロード)

Juliusと同様にダウンロードしたファイルの展開後、C:/Julius/ にコピーする。

音声ファイルの形式を変換

Juliusを使うためには、音声ファイルを以下の形式に変換しておく必要があります。

  • チャンネル数:1チャンネル(モノラル)
  • サンプルレート:16000 Hz
  • ファイル形式:.wavファイル、ヘッダなしRAWファイル

形式の変換方法前回の記事(PythonでFFmpegを使う方法 - Juliusの使用に向けて - )を参照

PythonでJuliusを実行

ソースコードを以下に載せております。

julius.py
import subprocess

# 日本語のパスはエラーがでる
julius      = "C:/Julius/julius-4.6-win32bin/bin/julius.exe"
main        = "C:/Julius/dictation-kit-4.5/main.jconf"
am_dnn      = "C:/Julius/dictation-kit-4.5/am-dnn.jconf"
julius_dnn  = "C:/Julius/dictation-kit-4.5/julius.dnnconf"

input_audio_file  = "input.wav"

args = [julius, "-C", main, "-C", am_dnn, "-dnnconf", julius_dnn, "-input", "rawfile", "-cutsilence"]

p = subprocess.run(args, stdout=subprocess.PIPE, input=input_audio_file, text=True)
print(p.stdout)
output = p.stdout.split("### read waveform input")[1].split("\n\n")
for i in output:
    if "sentence1:" not in i:
        continue
    sentence = i.split("sentence1:")[1].split("\n")[0].replace(" ", "")
    print(sentence)

以下の結果が出力されればOK。

結果
おはようございます。
今日は晴れです。

以上、Windows環境のPythonでJuliusを使う方法でした。

ソースコード

今回使用したソースコード、音声ファイルはこちらにあります。

参考にしたページ

4
3
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
4
3