Skip to content
New issue

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

REST API : post /add_preset が Internal Server Errorを返す #1478

Closed
1 of 3 tasks
TORISOUP opened this issue Nov 12, 2024 · 2 comments · Fixed by #1487
Closed
1 of 3 tasks

REST API : post /add_preset が Internal Server Errorを返す #1478

TORISOUP opened this issue Nov 12, 2024 · 2 comments · Fixed by #1487
Labels

Comments

@TORISOUP
Copy link

不具合の内容

voicevox.exe 0.21.1を使用しています。
REST API の POST /add_preset を実行すると "Internal Server Error"というレスポンスを返します。
エラーログは何も出力されませんでした。

現象・ログ

上記REST APIを使用すると"Internal Server Error"とだけ返ってくる。
その他のAPIは問題なく動作している。

再現手順

{
    "id": 1,
    "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
  }

上記の様なJsonを用意し、次のコマンドで送信する。

curl -X 'POST' \
  'http://localhost:50021/add_preset' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d @data.json

期待動作

成功のレスポンス または 失敗のレスポンスが正しく返却される。
(少なくともRequestBodyに問題があるならばInternalServerError以外のエラーを返して欲しい)

VOICEVOXのバージョン

0.21.1

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

  • Windows
  • macOS
  • Linux
  • Windows 11 Pro 64bit (23H2 22631.4391)
  • AMD Ryzen 9 5950X
  • RTX3090

その他

@takana-v
Copy link
Member

Windowsで全てのユーザー向けにVOICEVOXをインストールした環境で、このエラーが発生することを確認できました。
(インストール先:"C:\Program Files\VOICEVOX")

原因としては、/presets.yamlファイルの書き込み権限が無いことだと思われます。
VOICEVOXを管理者権限で起動することで、この問題を一時的に回避することができます。

/presets.yamlの廃止提案が既に行われていますが、未マージです。
(PRが未マージの理由ですが、恐らくヒホさんの「気になる点コメントして」に対して自分がリアクションだけしてPRのマージボタンを押さなかったせいですね…)

なお、このPRがマージされたとしても、このバグは解消されないと思われます。
ファイルの保存先を、辞書ファイルやエンジン設定ファイルと同じく、ユーザーフォルダ内にする必要があると思われます。
https://github.com/VOICEVOX/voicevox_engine/blob/master/voicevox_engine/utility/path_utility.py#L33


ちなみに、エディタ側は独自でプリセットを管理しているため、影響を受けないようです。

@TORISOUP
Copy link
Author

TORISOUP commented Nov 12, 2024

ご対応ありがとうございます。現象の原因を把握できました。

VOICEVOXを管理者権限で起動することで、この問題を一時的に回避することができます。

一旦はこちらで対応したいかと思います。

またこちらの根本対応は別に、Internal Server Error時に「失敗理由をレスポンスに含める」または「エラーログが出るようにする」なども対応もご検討頂ける助かります。

よろしくお願い致します。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
2 participants