算能bm_model模型链接:https://github.com/hsyysy/FunASR-bmodel/blob/bmodel/bmodel/README.md

一、环境配置

1.安装torch,torchaudio:

pip3 install torch torchaudio

2.安装funasr:

git clone https://github.com/hsyysy/FunASR-bmodel.git
cd FunASR-bmodel && pip3 install -e ./

cd FunASR-bmodel/bmodel/

注意 root 用户下和 linaro 用户下的python环境是分离的,需要注意这里是安装到哪个环境下了

后续需要在哪个环境下执行python启动命令

pip3 install -r requirements.txt

需要注意,这里固定版本为 

pip3 install umap-learn==0.5.3

3.根据系统架构选择性地安装tpu_perf:

查看系统架构:

uname -a

安装 x86架构:

pip3 install tpu_perf-1.2.35-py3-none-manylinux2014_x86_64.whl


或者arm架构:

pip3 install tpu_perf-1.2.35-py3-none-manylinux2014_aarch64.whl

二、离线语音识别demo

​本例程在各个模型的目录内scripts目录下提供了下载脚本download.sh

1.需要分别下载的模型:
speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404
speech_fsmn_vad_zh-cn-16k-common
punc_ct-transformer_zh-cn-common-vocab272727
speech_campplus_sv_zh-cn_16k-common

2.运行脚本 offline.py:

修改 offline.py

#!/bin/python3
  
import sys
sys.path.append("..")

from funasr import AutoModel
import time
import multiprocessing

# file_path = "../audio/test_audio_20241017.wav"
file_path = "audio.wav"
dev_id = 0
target = "BM1684X"

# offline asr demo
model = AutoModel(
        #model="speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404/models/"+target, ## 语音识别模型
        model="speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404/models/"+target,       ## 语音识别模型
        vad_model="speech_fsmn_vad_zh-cn-16k-common/models/"+target,                                   ## 语音端点检测模型
        punc_model="punc_ct-transformer_zh-cn-common-vocab272727/models/"+target,                      ## 标点恢复模型
        spk_model="speech_campplus_sv_zh-cn_16k-common/models/"+target,                                ## 说话人识别模型
        device="cpu",
        disable_update=True,
        disable_pbar=True,
        dev_id=dev_id,
)

# inference
start_time = time.time()

import soundfile as sf

speech, fs = sf.read(file_path)

if len(speech.shape) > 1:
    speech = speech[:,0]


print(
    "audio:",
    speech.shape,
    fs
)


res = model.generate(
    input=speech,
    batch_size_s=300
)

print(res)
# res = model.generate(input=file_path, batch_size_s=300,)
end_time = time.time()
if "sentence_info" in res[0].keys():
    for si in res[0]["sentence_info"]:
        print("["+format(si["start"],"7d")+"]["+format(si["end"],"7d")+"], spk="+format(si["spk"],'2d')+", text: "+si["text"])
else:
    print(res[0]["text"])
print("generate time:", end_time-start_time)

运行 offline.py

python3 offline.py

3. AI报告安装依赖和字体

1.安装AI报告依赖python-docx

❌算能盒子会遇到安装python-docx报错问题

安装python-docx报错非常典型,而且在 BM1684 / ARM / Ubuntu 上几乎必遇到
我们直接把根因、为什么你装了还是不行、以及 3 种可落地解决方案一次性说清楚。


①未安装python-docx会报下面错误:

No module named 'docx'

② 正常安装 python-docx会报错:
pip3 install python-docx

python-docx 的依赖 lxml 编译失败

Error: Please make sure the libxml2 and libxslt development packages are installed.

👉 结论一句话:

在 ARM(BM1684)环境下,python-docx 依赖的 lxml 没有可用的预编译 wheel,pip 只能源码编译,但你的系统缺少底层 C 库开发头文件。


③ 为什么在你这台机器上一定会这样?

1️⃣ python-docx → 依赖链

python-docx └── lxml ❌(需要本地编译) ├── libxml2-dev ❌ 缺失 └── libxslt-dev ❌ 缺失

2️⃣ 为什么 x86 机器没事,你这台有事?

平台 lxml 安装方式
x86_64 直接下载 wheel(不用编译)
ARM / BM1684 ❌ 没有 wheel → 必须源码编译

✅正确、最稳的解决方案(强烈推荐

🔧 方案 (最标准):安装系统依赖后再 pip 装

这是官方推荐、成功率 100% 的方式。

① 安装系统依赖(只需一次)
sudo apt-get update sudo apt-get install -y libxml2-dev libxslt-dev python3-dev build-essential
sudo apt-get update
sudo apt-get install -y \
  libxml2-dev \
  libxslt-dev \
  python3-dev \
  build-essential

说明一下这些包是干嘛的:

包名 作用
libxml2-dev lxml 核心依赖
libxslt-dev XML / XSLT 支持
python3-dev Python C 扩展头文件
build-essential gcc / make

apt update
apt install -y libreoffice

② 再装 python-docx
pip3 install python-docx -i https://pypi.tuna.tsinghua.edu.cn/simple


③ 验证(一定要做)
python3 - << 'EOF'
from docx import Document
print("python-docx OK")
EOF

看到输出就说明 彻底解决

4.安装中文字体(必做)

否则会出现docx转PDF导致中文乱码现象

1.解压中文字体包

字体根据具体路径安装

unzip SourceHanSansSC.zip

2. 创建系统字体目录

mkdir -p /usr/share/fonts/opentype/sourcehan

3. 复制字体

执行:

cp OTF/SimplifiedChinese/*.otf /usr/share/fonts/opentype/sourcehan/

4. 更新字体缓存

如果没有 fontconfig:

先安装:

apt update
apt install -y fontconfig

然后:

fc-cache -fv


5. 验证

执行:

fc-list | grep SourceHan

应该看到:

类似:

/usr/share/fonts/opentype/sourcehan/SourceHanSansSC-Regular.otf: Source Han Sans SC
/usr/share/fonts/opentype/sourcehan/SourceHanSansSC-Bold.otf: Source Han Sans SC

5. 运行AI_resport

① 迁移模型到指定目录下

把模型迁移到项目目录下:SourceHanSansSC 除外(思源黑体)

② 修改模型加载方式:

③ 运行 asr_flask_suanneng.py:

python3 asr_flask.py

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐