VOICEVOX Core 0.5.1をUbuntu + GPU + Pythonで使う(exampleを動かすまで)

※ VOICEVOX Coreにより生成した音声の利用にあたっては、VOICEVOX Coreの添付文書・利用規約を必ず確認し、従ってください。 https://github.com/Hiroshiba/voicevox_core Ubuntu 20.04.3 LTS (Focal Fossa) Python 3.9.6 (pyenv) NVIDIA-SMI 470.57.02 Driver Version: 470.57.02 CUDA Version: 11.4 cuDNN 8.2.4 VOICEVOXを使った音声合成について VOICEVOXの音声合成の仕組みについては、以下の記事が参考になるかもしれません。 VOICEVOXの音声合成エンジンの紹介 | Hiho’s Blog VOICEVOX Coreを効果的に使うには、ある程度音声合成の専門知識が必要になると思います。 簡易にTTSを利用したい場合には、VOICEVOX EngineのHTTP APIを使うことをおすすめします。 voicevox_engine API Document VOICEVOX Engineは、公式Dockerイメージが公開されています。 https://github.com/Hiroshiba/voicevox_engine https://hub.docker.com/r/hiroshiba/voicevox_engine VOICEVOX Coreのインタフェースについて Details わたしは音声合成については素人ですが、参考のため現在の理解を書いておきます。 VOICEVOX Coreでは、 「音素ごとの長さの推定 replace_phoneme_length / yukarin_s_forward」、 「モーラごとの音高の推定 replace_mora_pitch / yukarin_sa_forward」、 「音声波形の推定 synthesis / decode_forward」の3つの深層学習モデルを使って音声合成します。 OpenJTalkには、辞書に基づいてテキストを解析し、アクセント句・モーラ・アクセント位置・疑問文フラグなどの情報で構成された フルコンテキストラベルというデータに変換する機能があります。 フルコンテキストラベルの仕様は、以下のURLを開き、 HTS-2.3 > Speaker dependent training demo > Japanese > tar.bz2からHTS-demo_NIT-ATR503-M001.tar.bz2をダウンロード・展開し、 data/lab_format.pdfを見ると英語で記述されています。 ...

2021年9月11日 · aoirint

Open JTalk in Docker

以前にもOpen JTalkを触っていたが、時間が経った&記事が雑だったのでDockerでまとめ直しておく。 Open JTalk - aoirint’s note Dockerfileを作る。 FROM ubuntu:bionic RUN apt-get update && \ apt-get install -y \ open-jtalk \ open-jtalk-mecab-naist-jdic \ hts-voice-nitech-jp-atr503-m001 WORKDIR /data ENTRYPOINT [ "open_jtalk" ] mecab-naist-jdicは形態素解析辞書。 hts-voiceはボイスファイルだが、別途htsvoiceを用意する場合は不要。 ビルドする。 docker build . -t aoirint/open_jtalk 実行する。 echo "こんにちは" > text.txt # テキストファイルの文字列から音声を生成 docker run --rm -v "$PWD:/data" aoirint/open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic/ -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice text.txt -ow output.wav # 標準入力の文字列から音声を生成 cat text.txt | docker run --rm -i -v "$PWD:/data" aoirint/open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic/ -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice -ow output.wav # 標準入力の文字列から音声を生成して、標準出力に書き出す(wav形式) cat text.txt | docker run --rm -i -v "$PWD:/data" aoirint/open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic/ -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice -ow /dev/stdout > output.wav ffmpegで出力されたwavファイルを見るとこのような形式。 ...

2021年4月4日 · aoirint

Open JTalk mpg123

Open JTalkの出力したwavをmpg123で再生したらエラー出た。 [src/libmpg123/layer1.c:30] error: Illegal bit allocation value. [src/libmpg123/layer1.c:171] error: Aborting layer I decoding after step one. ffmpegでmp3に変換して再生するとok。mpg123では同じくエラーで変換できなかった。 ffmpeg -i b.wav b.mp3 mpg123 b.mp3 ffmpegのinfo Guessed Channel Layout for Input Stream #0.0 : mono Input #0, wav, from 'b.wav': Duration: 00:00:01.17, bitrate: 768 kb/s Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, mono, s16, 768 kb/s Input #0, mp3, from 'b.mp3': Metadata: encoder : Lavf57.56.101 Duration: 00:00:01.20, start: 0.023021, bitrate: 65 kb/s Stream #0:0: Audio: mp3, 48000 Hz, mono, s16p, 64 kb/s ffmpeg -i b.wav c.wav これもダメ ...

2019年5月25日 · aoirint

Open JTalk

# Open JTalk Test # python3 # exec `apt install open-jtalk open-jtalk-mecab-naist-jdic` # get `mei_normal.htsvoice` from http://www.mmdagent.jp/ import subprocess p = subprocess.Popen('open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m mei/mei_normal.htsvoice -r 1.0 -ow /dev/stdout', stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) text = 'こんにちは' out, err = p.communicate(text.encode('utf-8')) print(text) print(err) # outにwavのバイナリが入ってる。必要に応じてここ変えてね with open('b.wav', 'wb') as fp: fp.write(out) subprocess で shell=True でリストを与えたときの挙動 - Qiita 合成音声(Open Jtalk)でwavファイルを作成しないで再生する - Qiita python - input directly in process.communicate() in subprocess library - Stack Overflow subprocessについて調べたメモ - Qiita Debian Jessie に OpenJtalk を入れてテキストを読み上げてみた - 残しときます(自分用) 日本語音声合成Open JTalkをPythonから実行する - 動かざることバグの如し mmdagent.jp Open JTalk - HMM-based Text-to-Speech System See also mpg123

2019年5月25日 · aoirint