主流Python语音转文字(STT)库实战指南

 更新时间:2026年01月05日 11:19:23   作者:闻道且行之  
语音转文字的核心是通过信号处理、特征提取和模式识别将声波转换为文本,下面这篇文章主要介绍了主流Python语音转文字(STT)库的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

语音转文字(STT,Speech to Text)是人机交互、音视频处理、智能客服等领域的核心技术,Python 凭借生态丰富、易用性强的优势,成为 STT 开发的主流语言。当下各类 Python STT 库百花齐放,既有开箱即用、轻量化的本地识别库,也有对接大厂接口、高精度的云端识别工具,还涵盖了兼顾速度与准确率的开源模型类库,适配个人开发、企业级项目等不同场景。本文将聚焦 Python 生态中常用、成熟、高实用性的 STT 语音识别库,从功能特性、识别精度、部署成本、适用场景等维度展开盘点,为开发者选型提供清晰参考。

1 PaddleSpeech

PaddleSpeech 是百度飞桨开源的语音交互工具集,主打中文语音识别 / 合成能力,依托飞桨框架的高性能计算优势,在中文普通话、低音质音频识别场景下表现优异,且支持私有化部署,是企业级中文 STT 场景的首选方案之一。

1.1 安装步骤

安装命令:

conda create -n paddlespeech python=3.10
conda activate paddlespeech
python -m pip install paddlepaddle-gpu==3.2.2 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/

# 安装paddlespeech
git clone https://github.com/PaddlePaddle/PaddleSpeech.git
cd PaddleSpeech
pip install pytest-runner
pip install .

注:如果这里没有n卡,这里修改成pip install paddlepaddle,具体安装选择可以看官网:PaddlePaddle
我这里之所以使用源码编译的方式去安装,是因为直接使用pip安装会有很多bug。

1.2 测试代码

import paddle
from paddlespeech.cli.asr import ASRExecutor

asr_executor = ASRExecutor()
text = asr_executor(audio_file="test.wav", model="conformer_aishell")
print(text)

1.3 遇到的报错

ERROR: Could not find a version that satisfies the requirement opencc==1.1.6 (from paddlespeech) (from versions: 0.1, 0.2, 1.1.0.post1, 1.1.1, 1.1.7, 1.1.8, 1.1.9) ERROR: No matching distribution found for opencc==1.1.6
直接去PaddleSpeech/setup.py下面修改opencc安装版本:

2 whisper

Whisper 是 OpenAI 开源的多语言语音识别模型,凭借海量多语言音频数据训练,支持 99 种语言识别,中文普通话识别准确率≈95%,且抗噪能力强,是个人开发、多语言场景的首选方案。

2.1 安装命令

conda create -n whisper_env python=3.10
conda activate whisper_env
pip install -U openai-whisper

2.2 测试代码

import whisper

model = whisper.load_model("turbo")
result = model.transcribe("audio.mp3")
print(result["text"])

如下图所示,load_model时,可选参数为:

3 FunASR

FunASR 是阿里云通义实验室开源的语音识别框架,主打中文及方言识别,在 30 + 中文方言、低音质音频场景下表现领先,是中文专属 STT 场景的最优选择。

3.1 安装步骤

conda create -n funasr python=3.10
conda activate funasr
pip3 install -U funasr
pip3 install -U modelscope huggingface_hub
pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 --index-url https://download.pytorch.org/whl/cu118

3.2 测试代码

from funasr import AutoModel
from funasr.utils.postprocess_utils import rich_transcription_postprocess

model_dir = "iic/SenseVoiceSmall"

model = AutoModel(
    model=model_dir,
    vad_model="fsmn-vad",
    vad_kwargs={"max_single_segment_time": 30000},
    device="cuda:0",
)

# en
res = model.generate(
    input=f"test.mp3",
    cache={},
    language="auto",  # "zn", "en", "yue", "ja", "ko", "nospeech"
    use_itn=True,
    batch_size_s=60,
    merge_vad=True,  #
    merge_length_s=15,
)
text = rich_transcription_postprocess(res[0]["text"])
print(text)

3.3 遇到的错误

  • UnboundLocalError: local variable 'AutoTokenizer' referenced before assignment
    报错原因: transformers 库版本过低或未安装,导致模型加载时无法找到 AutoTokenizer 类。
    解决办法: 升级 transformers 库

    pip install -U transformers
    
  • AssertionError: FunASRNano is not registered
    报错原因: FunASR 版本过低,未注册 FunASRNano 模型类,常见于使用 Fun-ASR-Nano 系列模型时。
    解决办法: 手动导入模型类

    from funasr.models.fun_asr_nano.model import FunASRNano
    

  • Loading remote code failed: model, No module named 'model'
    ...
    OSError: Error no file named pytorch_model.bin, model.safetensors, tf_model.h5, model.ckpt.index or flax_model.msgpack found in directory xxx
    报错原因: FunAudioLLM/Fun-ASR-Nano-251 模型适配性较差,远程代码加载失败或权重文件下载不完整。
    解决办法: 替换为 FunASR 官方稳定支持的模型(如 iic/SenseVoiceSmall、paraformer-large),避免使用适配性不足的 Nano 系列模型。

总结

本文盘点了 Python 生态中三大主流 STT 库:PaddleSpeech 适配飞桨生态,适合企业级中文通用场景;Whisper 主打多语言识别,易用性拉满,适配个人开发;FunASR 在中文方言识别领域优势显著,适合中文专属场景。实际开发中,个人 / 多语言场景优先选 Whisper,中文方言 / 企业级场景优先选 FunASR,飞桨生态项目可选用 PaddleSpeech。开发时需注意版本适配与依赖管理,遇到问题可优先通过升级库或替换模型解决,确保识别效果与稳定性。

到此这篇关于主流Python语音转文字(STT)库实战指南的文章就介绍到这了,更多相关Python语音转文字(STT)库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python寻找含有关键字文件和删除文件夹方式

    python寻找含有关键字文件和删除文件夹方式

    这篇文章主要介绍了python寻找含有关键字文件和删除文件夹方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Python自动化办公之生成PDF报告详解

    Python自动化办公之生成PDF报告详解

    因为工作需要经常需要生成很多的PDF报告给客户查看产品效果以及过程的讲解,每次都需要按照一定的格式的编写文档并生成PDF报告,这样重复性的工作实在太累。本文就来用Python实现自动生成PDF报告吧
    2023-03-03
  • python求质数列表的例子

    python求质数列表的例子

    今天小编就为大家分享一篇python求质数列表的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • pytest实战技巧之参数化基本用法和多种方式

    pytest实战技巧之参数化基本用法和多种方式

    本文介绍了pytest参数化的基本用法和多种方式,帮助读者更好地使用这个功能,同时,还介绍了一些高级技巧,如动态生成参数名称、参数化的组合和动态生成参数化装饰器,帮助读者更灵活地使用参数化,感兴趣的朋友参考下吧
    2023-12-12
  • Pandas库中ffill函数的具体使用

    Pandas库中ffill函数的具体使用

    ffill(forward fill)是Pandas库中DataFrame和Series对象的一个函数,用于填充缺失值,本文主要介绍了Pandas库中ffill函数的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • python math模块使用方法介绍

    python math模块使用方法介绍

    math库是python的内置数学类函数库,支持整数和浮点数运算,math模块下的函数,返回值均为浮点数,除非有说明,math模块提供类似C语言标准定义的数学函数
    2022-08-08
  • 对python读取CT医学图像的实例详解

    对python读取CT医学图像的实例详解

    今天小编就为大家分享一篇对python读取CT医学图像的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python必备技巧之字符数据操作详解

    Python必备技巧之字符数据操作详解

    处理字符数据是编程不可或缺的一部分。Python 提供了一组丰富的运算符、函数和方法来处理字符串。包括字符串运算符、内置函数、索引、切片和内置方法。快来学习一下吧
    2022-03-03
  • 自学python用什么系统好

    自学python用什么系统好

    在本篇文章里小编给大家整理了一篇关于学python用什么系统好的相关文章,有兴趣的朋友们可以学习下。
    2020-06-06
  • python3字符串操作总结

    python3字符串操作总结

    这篇文章主要介绍了python3字符串操作总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07

最新评论