VOICEVOX CORE 新API (0.16) プレリリースの案内
Closed this issue · 11 comments
概要
このissueはプレリリース中の VOICEVOX CORE 0.16 の使い方を案内します。
プレリリース状態なので、一部のドキュメントの勝手が異なります。
使い方
ユーザーガイドをご参照ください。
中で紹介されているダウンローダーDownloaderの実行方法が少し異なります。
以下のように読み替えてください。
# before
./download# after
./download --c-api-version 0.16.0-preview.1 --onnxruntime-version voicevox_onnxruntime-1.17.3(引数でプリリリース中のバージョンを明示的に指定しています。)
サンプルコード
APIドキュメント
https://voicevox.github.io/voicevox_core/apis/
(Java APIはまだ実験段階です。)
ビルド済みライブラリ
https://github.com/VOICEVOX/voicevox_core/releases/tag/0.16.0-preview.1
バグ報告等
このissueの報告コメントいただけると幸いです。
もちろんissueを別で作っていただいても構いません。
プレリリースの案内ありがとうございます。
サンプルコードのリンクがREADMEの相対パスリンクからコピペした影響か404になってしまっていそうです。
以下が正しそうです。
あっ ありがとうございます!!変更します!!
Android/iOSアプリを開発しているものです。
0.15.0-preview.16 のときはAndroid/iOSともに問題なかったのですが、ライブラリのバージョンを 0.16.0-preview.1 に上げたところ、実行時エラーが発生するようになりました。
問題が再現するプロジェクト
プロジェクト: https://github.com/k-yamada/voicevox-mobile/tree/0.16.0-preview.1
0.15.0-preview.16からの差分: https://github.com/k-yamada/voicevox-mobile/pull/1
以下の実機でエラーが発生することを確認しております。
- Android: Pixel 4a
- iOS: iPhone13
Android
ライブラリ
- composeApp/libs/voicevoxcore-android-0.16.0-preview.1.aar
- https://github.com/VOICEVOX/voicevox_core/releases/tag/0.16.0-preview.1 の java_package.zip から取得
- composeApp/src/androidMain/jniLibs/arm64-v8a/libvoicevox_onnxruntime.so
- https://github.com/VOICEVOX/onnxruntime-builder/releases/tag/voicevox_onnxruntime-1.17.3 の voicevox_onnxruntime-android-arm64-1.17.3.tgz から取得
エラーログ
2025-03-12 19:37:26.649 32634-584 nativeloader app.example D Load /data/app/~~JaOOpGPt1Z_MW1pA50nn_A==/app.example-QgXghrZ1J2tmCY_45VVdBg==/base.apk!/lib/arm64-v8a/libvoicevox_core_java_api.so using ns clns-4 from class loader (caller=/data/app/~~JaOOpGPt1Z_MW1pA50nn_A==/app.example-QgXghrZ1J2tmCY_45VVdBg==/base.apk!classes8.dex): dlopen failed: cannot locate symbol "_ZTTNSt6__ndk119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE" referenced by "/data/app/~~JaOOpGPt1Z_MW1pA50nn_A==/app.example-QgXghrZ1J2tmCY_45VVdBg==/base.apk!/lib/arm64-v8a/libvoicevox_core_java_api.so"...
--------- beginning of crash
2025-03-12 19:37:26.666 32634-32634 AndroidRuntime app.example E FATAL EXCEPTION: main
Process: app.example, PID: 32634
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_ZTTNSt6__ndk119basic_ostringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE" referenced by "/data/app/~~JaOOpGPt1Z_MW1pA50nn_A==/app.example-QgXghrZ1J2tmCY_45VVdBg==/base.apk!/lib/arm64-v8a/libvoicevox_core_java_api.so"...
at java.lang.Runtime.loadLibrary0(Runtime.java:1081)
at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
at java.lang.System.loadLibrary(System.java:1765)
at jp.hiroshiba.voicevoxcore.internal.Dll.loadLibrary(Dll.java:22)
at jp.hiroshiba.voicevoxcore.blocking.Onnxruntime.<clinit>(Onnxruntime.java:23)
at app.example.voicevox.VoicevoxNativeImpl.makeSynthesizer(VoicevoxNativeImpl.kt:54)
at app.example.voicevox.VoicevoxNativeImpl.access$makeSynthesizer(VoicevoxNativeImpl.kt:19)
at app.example.voicevox.VoicevoxNativeImpl$speak$2.invokeSuspend(VoicevoxNativeImpl.kt:30)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:101)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:113)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:589)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:823)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:720)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:707)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineName(zbbykf:app.example.screens.tts.TtsScreenModel:default), StandaloneCoroutine{Cancelling}@780c710, Dispatchers.Main.immediate]
iOS
ライブラリ
- iosApp/Libs/voicevox_onnxruntime.xcframework
- https://github.com/VOICEVOX/onnxruntime-builder/releases/tag/voicevox_onnxruntime-1.17.3 の voicevox_onnxruntime-ios-xcframework-1.17.3.zip から取得。
- iosApp/Libs/voicevox_core.xcframework
- https://github.com/VOICEVOX/voicevox_core/releases/tag/0.16.0-preview.1 の voicevox_core-ios-xcframework-cpu-0.16.0-preview.1.zip から取得。
エラーログ
XcodeのSchemeの設定の Debug executableによってエラーの内容が異なります。
Debug executableがONの場合
Synthesizer.swiftの以下の箇所で、Failed to create ONNX Runtime session: Failed to load 'vv_bin': Please detach any debugger and retry.というエラーが発生する。
let resultCode = voicevox_synthesizer_load_voice_model(ptr, voiceModel.ptr)ログ
2025-03-12T21:50:48.338315+09:00 ERROR voicevox_core::helpers: `/var/mobile/Containers/Data/Application/BB89028A-AF14-412E-9709-EA418A6735E6/Library/voicevox_model/0.vvm`の読み込みに失敗しました: モデルデータを読むことができませんでした
2025-03-12T21:50:48.338519+09:00 ERROR voicevox_core::helpers: Caused by: `/var/mobile/Containers/Data/Application/BB89028A-AF14-412E-9709-EA418A6735E6/Library/voicevox_model/0.vvm`の読み込みに失敗しました: モデルデータを読むことができませんでした
2025-03-12T21:50:48.338521+09:00 ERROR voicevox_core::helpers: Caused by: Failed to create ONNX Runtime session: Failed to load 'vv_bin': Please detach any debugger and retry.
runtimeError("failed to voicevox_synthesizer_load_voice_model: result=27 message=モデルデータを読むことができませんでした")
Debug executableがOFFの場合
Synthesizer.swiftの以下の箇所で、ERROR voicevox_core::helpers: 無効なAudioQueryです: missing field speedScale at line 1 column 984というエラーが発生する。
let resultCode = voicevox_synthesizer_synthesis(ptr,
(audioQuery.json as NSString).cString(using: NSUTF8StringEncoding),
styleId,
options,
&len,
&out)ログ
2025-03-12T21:47:50.145545+09:00 ERROR voicevox_core::helpers: 無効なAudioQueryです: missing field `speedScale` at line 1 column 984
runtimeError("failed to voicevox_synthesizer_synthesis: result=14 message=無効なaudio_queryです")
(3/13 追記)
#946 で AudioQueryのjsonのキーが変わったことが原因だと思うので、アプリ側で修正可能でした。ただ、jsonのキーがスネークケースとキャメルケースが混在しているのが気になりました。(accent_phrases と その中身だけスネークケース)
アプリ側の修正コミット: https://github.com/k-yamada/voicevox-mobile/pull/1/commits/22e81d9d6fb9beca72afdb20867f494b5fddb308
@k-yamada ご報告ありがとうございます!! ios/androidでの結果と詳細なご報告、とてもありがたいです!!!
android側はわからなかったのですが、ios側だけ・・・。
Failed to load 'vv_bin': Please detach any debugger and retry.
この部分がエラー原因だと思います!
デバッガーなどを使っている場合は外せばOKだと思います。
ちゃんと知らないのですが、Xcodeで実行するときにDebug→Releaseにすると動くとか、あるいはvoicevox_onnxruntimeだけReleaseとするとかすれば動いたり・・・・・・?
iosの場合このエラーが出るせいでとても開発しづらいなどもあり得るかもしれません・・・。
ご意見あればなんでもお待ちしています!!
@Hiroshiba アドバイスありがとうございます。
Xcodeの設定のDebug executableのON/OFFによってエラーの内容が変わりましたので、追記しました。
@Hiroshiba iOSで無効なAudioQueryとなる原因は、#946 で AudioQueryのjsonのキーが変わったことだと思うので、アプリ側で修正可能でした。ただ、jsonのキーがスネークケースとキャメルケースが混在しているのが気になりました。(accent_phrases と その中身だけスネークケース)
アプリ側の修正コミット: https://github.com/k-yamada/voicevox-mobile/pull/1/commits/22e81d9d6fb9beca72afdb20867f494b5fddb308
Debug executableがONの場合
こちらですが、先程voicevox_onnxruntimeを更新し、ONでもOFFでも変わらないようになりました!!
ご報告ありがとうございました・・・!! @k-yamada
@Hiroshiba 対応ありがとうございます。debug executableをONにして動作することを確認できました。
確認ありがとうございます!!
コアの0.16プレリリースは期間終了したので、このissueは閉じたいと思います!
皆様ありがとうございました!!!