We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docker run --rm -it -p '127.0.0.1:50021:50021' voicevox/voicevox_engine:cpu-ubuntu20.04-latest
にて起動し、以下のcurlを叩くと500エラーが返ってきてしまいます。
curl -X 'POST' \ 'http://localhost:50021/add_preset' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "id": 2, "name": "サンプルプリセット", "speaker_uuid": "7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff", "style_id": 0, "speedScale": 1, "pitchScale": 0, "intonationScale": 1, "volumeScale": 1, "prePhonemeLength": 0.1, "postPhonemeLength": 0.1, "pauseLength": null, "pauseLengthScale": 1 }'
内容はデフォルトプリセットからID以外変更していないおりません。 また、swaggerに用意されているサンプルリクエスト含め、パラメータを変えるなど様々試してみましたが、全て500エラーとなりました。
なお、Docker以外では同じリクエストでも問題なく動作するため、バグではないかと思いご報告させていただきました。
INFO: Started server process [1] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:50021 (Press CTRL+C to quit) INFO: 172.17.0.1:65490 - "GET /docs HTTP/1.1" 200 OK INFO: 172.17.0.1:56646 - "POST /add_preset HTTP/1.1" 500 Internal Server Error
で起動後に、
などの形で/add_presetに対してPOSTを行う
登録IDが返ってくること
なお、Dockerではなく、VOICEVOXを通常通りダウンロードした上で同じようにcurlを叩いた場合は問題なく登録できました。
core_version: 0.15.4 (Engine: latest)
The text was updated successfully, but these errors were encountered:
issue作成ありがとうございます!
おそらくデフォルトのプリセットファイルのパスに書き込み権限がないのだと思われます! デフォルトのプリセットファイルのパスは現在エンジンパス/preset.yamlです。
エンジンパス/preset.yaml
アンドキュメントな仕様なのですが、このプリセットファイルのパスを書き込み権限のある場所に変えてあげれば動きました。 とりあえずこうすれば動くと思います!
# ホストのtmpディレクトリに空っぽのプリセットファイルを作る echo "[]" > /tmp/preset.yaml # 空っぽのプリセットファイルがdockerコンテナ内で見えるようにしつつ、そのプリセットファイルを指定して起動 docker run \ --rm \ -it \ -p '127.0.0.1:50021:50021' \ -e VV_PRESET_FILE=/tmp/preset.yaml \ -v /tmp/preset.yaml:/tmp/preset.yaml \ voicevox/voicevox_engine:cpu-ubuntu20.04-latest
-eで環境変数VV_PRESET_FILEを指定しています。 -vでホストで作ったプリセットファイルをコンテナ内で見えるようにしています。
-e
VV_PRESET_FILE
-v
ちなみに有効なプリセットファイルにするために空っぽの配列[]を書き込んでいますが、この仕様は将来変わってそもそもファイルを用意しなくてもよくなるかもしれません。
[]
Sorry, something went wrong.
ありがとうございます! 教えていただいた方法で動作しました!
今後の仕様変更で修正されることも承知しました!
Dockerイメージ VOICEVOX/voicevox_engine は、エンジンの実行ユーザがUID:GID=1000:1000となるように構成されているので、 Docker DesktopではないLinux上のDocker Engineで使用する場合(GitHub Actionsなど)は、プリセットファイルの所有者の変更が必要になる場合があるかもしれません。
UID:GID=1000:1000
あらかじめホスト側でプリセットファイルの所有者がUID:GID=1000:1000になっていることを確認して、異なっていれば変更することで書き込めるようになると思います。
$ ls -n /tmp/preset.yaml -rw-r--r-- 1 1001 1001 3 Aug 3 09:20 /tmp/preset.yaml ^UID ^GID $ sudo chown '1000:1000' /tmp/preset.yaml ^UID ^GID $ ls -n /tmp/preset.yaml -rw-r--r-- 1 1000 1000 3 Aug 3 09:20 /tmp/preset.yaml ^UID ^GID
あっ 確かにファイルへの書き込み権限付与しないとですね!!
No branches or pull requests
不具合の内容
にて起動し、以下のcurlを叩くと500エラーが返ってきてしまいます。
内容はデフォルトプリセットからID以外変更していないおりません。
また、swaggerに用意されているサンプルリクエスト含め、パラメータを変えるなど様々試してみましたが、全て500エラーとなりました。
なお、Docker以外では同じリクエストでも問題なく動作するため、バグではないかと思いご報告させていただきました。
現象・ログ
再現手順
で起動後に、
などの形で/add_presetに対してPOSTを行う
期待動作
登録IDが返ってくること
なお、Dockerではなく、VOICEVOXを通常通りダウンロードした上で同じようにcurlを叩いた場合は問題なく登録できました。
VOICEVOXのバージョン
core_version: 0.15.4
(Engine: latest)
OSの種類/ディストリ/バージョン
その他
The text was updated successfully, but these errors were encountered: