Skip to content

[Bug] Native crash in libonnxruntime.so via SherpaOnnxOfflineTtsZipvoiceRunEncoder #7

@Ricardo-014

Description

@Ricardo-014

問題描述:
在使用Xiaomi 裝置(Android 16 / API 36)進行語音合成時,應用程式發生Native 層崩潰。崩潰點位於libonnxruntime.so庫中,具體是在調用sherpa-onnx的ZipvoiceRunEncoder介面期間觸發。每次都會發生。

設備與環境資訊:

設備型號:小米(代號: popsicle)

系統版本: OS3.0.304.0.WPBCNXM (Android 16 / API 36)

應用包名: com.sipeter.clonetts

核心庫: libonnxruntime.so , libsherpa-onnx-c-api.so,libcore_tts_jni.so

崩潰堆疊資訊(Stacktrace):

Plaintext
#00 pc 00000000007661a0 /data/app/.../lib/arm64/libonnxruntime.so (BuildId: 43c64ac553541aa9efc66aea29478734a85ad091)
...
#19 pc 00000000001632fc /data/app/.../lib/arm64/libsherpa-onnx-c-api.so (SherpaOnnxOfflineTtsZipvoiceRunEncoder+492)
#20 pc 00000000000237fc /data/app/.../lib/arm64/libcore_tts_jni.so (Java_com_sipeter_clonetts_CoreTtsEngine_nativeRunEncoder+216)
#23 pc 0000000000f06f5c /data/app/.../oat/arm64/base.vdex (com.sipeter.clonetts.CoreTtsEngine.runEncoder+112)
#25 pc 0000000000f0e900 /data/app/.../oat/arm64/base.vdex (com.sipeter.clonetts.TtsPlayerManager$play$1.invokeSuspend+2868)
復現步驟:

在應用中選擇一個基於Zipvoice的語音模型。

點擊播放或觸發語音合成操作。

程式在底層模型推理(Encoding)階段直接閃退。

初步分析:

模型檔案問題:可能是Zipvoice 模型檔案損壞,或與目前onnxruntime版本不相容。

內存分配異常:在nativeRunEncoder進行張量計算時,可能發生了內存越界或OOM。

多線程衝突:崩潰發生在協程調度器(CoroutineScheduler)中,需確認底層sherpa-onnx實例在並發調用下是否安全。

預期結果:
語音合成應正常運行,不應觸發Native 運行時崩潰。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions