VOICEVOX / voicevox_core

無料で使える中品質なテキスト読み上げソフトウェア、VOICEVOXのコア
https://voicevox.hiroshiba.jp/
MIT License
872 stars 117 forks source link

Could not find "voicevox_core-linux-arm64-gpu-0.14.5.zipとなります #670

Closed Heartful-echo closed 1 year ago

Heartful-echo commented 1 year ago

質問の内容

NVIDIA JetsonデバイスでVOICEVOX COREを使用できるか試そうとしています。

binary=download-linux-arm64 curl -sSfL https://github.com/VOICEVOX/voicevox_core/releases/latest/download/${binary} -o download chmod +x download ./download --device cuda と実行しましたが、結果が下記のようになりました。

jetson@ubuntu:~/Desktop/VOICEVOX$ ./download --device cuda Error: Could not find "voicevox_core-linux-arm64-gpu-0.14.5.zip" in https://github.com/VOICEVOX/voicevox_core/releases/tag/0.14.5

対処法をご教授願います。

VOICEVOXのバージョン

0.14.5

OSの種類/ディストリ/バージョン

Ubuntu20.04 LTS

sevenc-nanashi commented 1 year ago

arm64のGPU版は提供されていません。--device cudaを外せばダウンロードはできると思います。

(コミッターへ:何かやってない理由ありましたっけ?可能なら提供した方がいいような気がします)

Heartful-echo commented 1 year ago

@sevenc-nanashi コメントありがとうございます。 ご助言通りに、--device cudaを外してダウンロードをおこないました。

実際に動作させようと色々調べて下記のようにおこないました。

# step0
binary=download-linux-arm64
curl -sSfL [https://github.com/VOICEVOX/voicevox_core/releases/latest/download/${binary}](https://github.com/VOICEVOX/voicevox_core/releases/latest/download/$%7Bbinary%7D) -o download
chmod +x download
./download

## step1
git clone https://github.com/VOICEVOX/voicevox_core -b 0.14.4

## step2
# /VOICEVOX/voicevox_core/example/pythonのREADME.mdファイルを参照

## step3
# README.mdファイルに「この README があるディレクトリで、[Downloader を使用して voicevox_core をダウンロードします]」とあったので、step0でダウンロードしたvoicevox_coreをstep2のディレクトリにコピー

## step4
python3 run.py --text "これは本当に実行できているんですか" --speaker_id 1
# を実行しました。

root@ubuntu:/VOICEVOX/voicevox_core/example/python# python3 run.py --text "これは本当に実行できているんですか" --speaker_id 1
Traceback (most recent call last):
  File "run.py", line 3, in <module>
    import core
  File "/VOICEVOX/voicevox_core/example/python/core.py", line 28, in <module>
    raise Exception(f"coreライブラリファイルが{core_dll_path}に存在しません")
Exception: coreライブラリファイルが/VOICEVOX/voicevox_core/example/python/voicevox_core/libcore.soに存在しません

このようなエラーとなるのですが、どこの手順が間違っておりますでしょうか。

sevenc-nanashi commented 1 year ago

(ちょっと編集させてもらいました) 0.14.4のブランチのコードは動かないですね。

0.14のAPIで動かしたい場合は、eb6768fをcheckoutし、example内のREADMEを参照してください。 FFIのサンプルはC++のサンプルを参照してください。

ちなみに、0.15でAPIが大きく変わります。0.15のAPIを試したい場合(頻繁に破壊的変更が行われますが)は:

Heartful-echo commented 1 year ago

@sevenc-nanashi ご丁寧にありがとうございます。

0.14のAPIで動かしたい場合は、eb6768fをcheckoutし、example内のREADMEを参照してください。

とありますが、この方法がわかりません。やり方を解説したページなど、ご紹介頂けますでしょうか。 調べようにもどんなキーワードで検索すればよいかわからない次第です。

sevenc-nanashi commented 1 year ago

voicevox_coreをgit cloneしたディレクトリで git checkout eb6768f を叩けば動くと思います。(git checkoutで調べれば出るかと)

Heartful-echo commented 1 year ago

@sevenc-nanashi 早速のコメントありがとうございます。早速試そうとしたのですが、教授にJetsonを回収されました。あしたまた継続してみます!

Hiroshiba commented 1 year ago

arm64のGPU版は提供されていません。--device cudaを外せばダウンロードはできると思います。

(コミッターへ:何かやってない理由ありましたっけ?可能なら提供した方がいいような気がします)

あー、onnxruntimeの動的ライブラリが配布されていないからかなと・・・ 😇 @sevenc-nanashi https://github.com/microsoft/onnxruntime/releases/tag/v1.16.1

Heartful-echo commented 1 year ago

@sevenc-nanashi

おはようございます!一番乗りでJetsonを借りてきました。 昨日の続きをしました。

git clone https://github.com/VOICEVOX/voicevox_core -b 0.14.4
cd voicevox_core/
git checkout eb6768f
cd ..
binary=download-linux-arm64
curl -sSfL https://github.com/VOICEVOX/voicevox_core/releases/latest/download/${binary} -o download
chmod +x download
# git cloneしたソースとバージョンを合わせました
./download -v 0.14.4
pip3 install https://github.com/VOICEVOX/voicevox_core/releases/download/0.14.4/voicevox_core-0.14.4+cpu-cp38-abi3-linux_aarch64.whl

このあと、サンプルコードを実行したのですが、下記エラーとなりました。

root@ubuntu:/VOICEVOX/voicevox_core/example/python# python3 run.py --text "これは本当に実行できているんですか" --speaker_id 1
Traceback (most recent call last):
  File "run.py", line 8, in <module>
    import voicevox_core
  File "/usr/local/lib/python3.8/dist-packages/voicevox_core/__init__.py", line 11, in <module>
    from ._rust import METAS, SUPPORTED_DEVICES, VoicevoxCore  # noqa: F401
ImportError: libonnxruntime.so.1.13.1: cannot open shared object file: No such file or directory
root@ubuntu:/VOICEVOX/voicevox_core/example/python# 

おそらく、onnxruntimeがないのだと思います。 onnxruntimeの入手方法と、入手したonnxruntimeをvoicevox_coreディレクトリのどこに配置すれば良いのかご教授を お願いいたします。

Heartful-echo commented 1 year ago

export LD_LIBRARY_PATH="/VOICEVOX/voicevox_core:$LD_LIBRARY_PATH" としたら先に進めました。

再度、下記を実行したのですが、 root@ubuntu:/VOICEVOX/voicevox_core/example/python# python3 run.py --text "これは本当に実行できているんですか" --speaker_id 1

下記のエラーとなりました。

[DEBUG] __main__: voicevox_core.SUPPORTED_DEVICES=SupportedDevices(cpu=True, cuda=False, dml=False)
[INFO] __main__: Initializing (acceleration_mode=<AccelerationMode.AUTO: 'AUTO'>, open_jtalk_dict_dir=PosixPath('open_jtalk_dic_utf_8-1.11'))
ERROR: Mecab_load() in mecab.cpp: Cannot open open_jtalk_dic_utf_8-1.11.
Traceback (most recent call last):
  File "run.py", line 86, in <module>
    main()
  File "run.py", line 25, in main
    core = VoicevoxCore(
voicevox_core.VoicevoxError: OpenJTalkの辞書が読み込まれていません

open_jtalk_dic_utf_8-1.11ディレクトリは、voicevox_core直下にあります。 どのようにすればよいでしょうか。

root@ubuntu:/VOICEVOX/voicevox_core/open_jtalk_dic_utf_8-1.11# ls
COPYING  char.bin  left-id.def  matrix.bin  pos-id.def  rewrite.def  right-id.def  sys.dic  unk.dic
root@ubuntu:/VOICEVOX/voicevox_core/open_jtalk_dic_utf_8-1.11# 
Heartful-echo commented 1 year ago

open_jtalk_dic_utf_8-1.11ディレクトリをコピーして、/VOICEVOX/voicevox_core/example/python にペーストしたら動作しました!

[INFO] __main__: Creating an AudioQuery from 'リンゴ'
[INFO] __main__: Synthesizing with {"accent_phrases": [{"moras": [{"text": "リ", "consonant": "r", "consonant_length": 0.060304187, "vowel": "i", "vowel_length": 0.15876506, "pitch": 5.8891954}, {"text": "ン", "consonant": null, "consonant_length": null, "vowel": "N", "vowel_length": 0.11447175, "pitch": 6.035903}, {"text": "ゴ", "consonant": "g", "consonant_length": 0.06877849, "vowel": "o", "vowel_length": 0.22576113, "pitch": 5.9248786}], "accent": 3, "pause_mora": null, "is_interrogative": false}], "speed_scale": 1.0, "pitch_scale": 0.0, "intonation_scale": 1.0, "volume_scale": 1.0, "pre_phoneme_length": 0.1, "post_phoneme_length": 0.1, "output_sampling_rate": 24000, "output_stereo": false, "kana": "リンゴ'"}
[INFO] __main__: Wrote `output.wav`
[DEBUG] voicevox_core_python_api: Destructing a VoicevoxCore

ありがとうございました。

Heartful-echo commented 1 year ago

open_jtalk_dic_utf_8-1.11のコピーを止めて、run.pyを下記のように修正して使用しています。

argparser.add_argument(
        "--dict-dir",
        default="../../open_jtalk_dic_utf_8-1.11",
        type=Path,
        help="Open JTalkの辞書ディレクトリ",
    )