You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kivy安卓应用集成DeepSpeech失败的问题求助

Kivy安卓集成DeepSpeech:模块缺失与依赖错误修复方案

一、解决"找不到deepspeech模块"问题

之前的自定义PythonForAndroid(P4A)recipe只构建了deepspeech_training模块,因为DeepSpeech根目录的setup.py仅负责训练相关代码。要得到推理用的核心模块,需调整recipe:

  • 把构建脚本指向DeepSpeech的native_client/python目录下的setup.py,这才是生成推理模块的配置文件。
  • 调整recipe的source_dir路径,确保指向native_client/python,同时添加逻辑复制DeepSpeech的核心动态库(libdeepspeech.so)到APK的对应架构目录(libs/[arm64-v8a]/等)。
  • 构建完成后,解压APK检查_python_bundle/site-packages/deepspeech目录,确认包含_impl.so、model.py等推理必需文件。

二、修复"libc++_shared.so not found"运行时错误

这个错误是因为deepspeech/_impl.so依赖系统的libc++_shared.so,但该库未被正确打包到APK中,可通过两种方式解决:

  1. 修改Buildozer配置:直接在buildozer.spec的requirements里添加libc++_shared:
    requirements = python3==3.7.14, hostpython3==3.7.14, kivy, kivymd, sqlite3, numpy==1.14.5, deepspeech, apsw, libc++_shared
    
  2. 手动在recipe中复制库:
    • 找到你Android NDK路径下的libc++_shared.so,通常在$ANDROID_NDK/sources/cxx-stl/llvm-libc++/libs/[对应架构]/
    • 在recipe的package阶段添加复制命令,把该库放到APK的libs/[对应架构]/目录下。
  3. 可选:设置加载路径:如果还是加载失败,在Python代码开头添加环境变量配置:
    import os
    os.environ['LD_LIBRARY_PATH'] += ':/data/user/0/org.test.myapp/files/app/libs/'
    

三、TensorFlow模型输出转文本的方法

如果用TensorFlow直接跑DeepSpeech模型,把输出数组转文本的步骤如下:

  • 先加载模型配套的alphabet.txt词汇表,里面是模型输出索引对应的字符。
  • 对模型输出的概率数组(每个时间步对应词汇表的概率)取最大值,得到字符索引。
  • 去重连续重复的字符(DeepSpeech模型会输出重复字符),再替换空白符得到最终文本。示例代码:
    def convert_indices_to_text(predicted_indices, alphabet):
        result = []
        last_char = None
        for idx in predicted_indices:
            current_char = alphabet[idx]
            if current_char != last_char:
                result.append(current_char)
                last_char = current_char
        return ''.join(result).replace('_', ' ')
    
    # 加载词汇表
    with open('alphabet.txt', 'r', encoding='utf-8') as f:
        alphabet_list = [line.strip() for line in f.readlines()]
    
    # 假设model_output是TensorFlow输出的形状为(序列长度, 词汇表大小)的数组
    indices = model_output.argmax(axis=1).numpy()
    final_text = convert_indices_to_text(indices, alphabet_list)
    

内容的提问来源于stack exchange,提问作者Gonçalo Pereira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 02:10:35