京公网安备 11010802034615号
经营许可证编号:京B2-20210330
网上找到的有关python语音识别的例子,有一些成熟的模型,可以进行python语音识别,将语音转成文字。例如Cloud Speech API,但是需要你使用google云平台的前提。下面我们一起来看看吧!

作者 | 小隐
来源 | 淘气面包
speech recognition
对于python这一非常成熟的胶水语言,在网上找一些现成的工具包真的不是一个太难的问题。在GitHub上就发现了这样一个神奇的包:speech recognition。
它可以支持实时翻译,当然前提是需要在机器上安装有关麦克风的依赖包;还可以支持将语音文件中的文字直接提取出来。通过speech recognition可以调用多种平台上的模型,比如google API,CMU sphinx,Microsoft Bing Speech,IBM Speech to Text,Wit.ai 等。
离线转换
对于国内的网络环境,无法用google API来将语音数据转换成文本文件,因为在调用这个包的时候,需要连接到google。当然,你可以租用一个国外的VPS来做这件事情。
这里讲一下如何在不联网的情况下,依然可以通过python来将语音文件转换成文字。这里用到的包为sphinx,sphinx是由美国卡内基梅隆大学开发的大词汇量、非特定人、连续英语语音识别系统。
安装 sphinx
我本人所用的环境为ubuntu。
imyin@develop:~/Downloads/phinx$ lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 16.04.3 LTSRelease: 16.04Codename: xenial
在安装sphinx之前需要安装一些软件包
sudo apt-get install gcc automake autoconf libtool bison swig python-dev libpulse-dev
之后可以在相关网站上下载sphinxbase安装包,当然也可以直接clone github上的包
下载完之后进行解压
tar zxpf sphinxbase-5prealpha.tar.gz
修改文件名
mv sphinxbase-5prealpha sphinxbasels sphinxbaseAUTHORS doc indent.sh Makefile.am README.md src win32autogen.sh .git LICENSE NEWS sphinxbase.pc.in swigconfigure.ac include m4 README sphinxbase.sln test
现在我们应该运行
autogen.sh
来生成
Makefiles
和其他一些脚本以备后续的编译和安装。
./autogen.sh
下面开始源码安装
make && sudo make install
执行完以上命令之后,如果没有出现什么报错信息,就说明已经安装成功了,但是此时你的命令并不可以生效,在运行命令时会出现这样的错误。
imyin@develop:~/Downloads/phinx/sphinxbase$ sphinx_lm_convert sphinx_lm_convert: error while loading shared libraries: libsphinxbase.so.3: cannot open shared object file: No such file or directory
还需要让系统加载目录
/usr/local/lib
,为了让系统每次启动时都可以自动加载,可以修改系统配置文件
ld.so.conf
sudo echo "/usr/local/lib" >> /etc/ld.so.confsudo ldconfig
这时候,就可以通过
sphinx_lm_convert
命令将模型DMP文件转成bin文件
sphinx_lm_convert -i zh_broadcastnews_64000_utf8.DMP -o zh_CN.lm.bin
上面这行代码是将中文的模型DMP文件转成了bin文件。在安装完sphinx后默认只支持英文,在存放模型的路径下只有一个文件名为en-US,所以这里需要添加一个处理中文的模型,相关文件可以在这个网址中下载。
在python中使用sphinx
想要在python中使用sphinx的话,需要安装一些依赖包。
pip install pydub -U # 负责将MP3文件转换为 wav 文件pip install SpeechRecognition -U # 负责将语音转换成文字sudo apt -qq install build-essential swig libpulse-dev # 为后面安装 pocketsphinx 做准备pip install -U pocketsphinx # 为使用 sphinx sudo apt-get install libav-tools # 为解决在调用 pydub 时出现的 warning :RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
这时候,就可以启动ipython来试试效果了。
file_path = '/home/imyin/Downloads/phinx/test_data'r = sr.Recognizer()hello_zh = sr.AudioFile(os.path.join(file_path, 'test.wav'))with hello_zh as source: audio = r.record(source)r.recognize_sphinx(audio, language='zh_CN')'今天 天气 很'
可以看出,这个语音识别器已经生效了。但是我说的是“今天天气好热啊”。
看来sphinx中的模型并非很准呐,而且这只是一个短句子。我们接下来看看长句子的效果,我录了村上春树的《当我谈跑步时我谈些什么》中的一段内容。
那一年的七月里,我去了一趟希腊,要独自从雅典跑到马拉松,将那条原始的马拉松路线——马拉松至雅典——逆向跑上一趟。为什么要逆向跑呢?因为清晨便从雅典市中心出发,在道路开始拥堵、空气被污染之前跑出市区,一路直奔马拉松的话,道路的交通量远远少得多,跑起来比较舒适。这不是正式的比赛,自己一个人随意去跑,当然不能指望有什么交通管制。hello_zh = sr.AudioFile(os.path.join(file_path, 'test2.wav'))with hello_zh as source: audio = r.record(source)r.recognize_sphinx(audio, language='zh_CN')'南 音 扬 的 只有 领 过 球 的 立场 是 希望 让 猪只 处理 垃圾 土木工程 上 打球 运动 充满 温情 能 成功 吗 而 中止 了 对 印尼 商报 称 他 不是 没有 立场 谈 那 一 枚 其中 春天 从 雅典 市中心 出发 寸 厂 都 可 成功 突破 寻求 对 於 能 提升 统筹 署 取缔 一路 直奔 马拉松 和 阿 惹 山 活动 等 二十 个 队 中 重申 这 不是 正常 的 比赛 自己 一个人 却 一直到 当然 不能 说明 什么 这种 共识'
呃,看到结果,我觉得可以用一个来形容:差劲。两个字来形容:太差劲!
当然,这个模型只是我直接从网上下载下来的。训练它时所用到的语料不会那么齐全,所以在测试时难免会出现不准确的情况。要想让模型更加准确,需要自己在利用sphnix继续训练模型。
相关办法在其官网上可以找到,也有相应的教程。感兴趣的朋友可以自行研究。
Q: Why my accuracy is poorSpeech recognition accuracy is not always great. To test speech recognition you need to run recognition on prerecorded reference database to see what happens and optimize parameters.You do not need to play with unknown values, the first thing you should do is to collect a database of test samples and measure the recognition accuracy. You need to dump speech utterances into wav files, write the reference text file and use decoder to decode it. Then calculate WER using the word_align.pl tool from Sphinxtrain. Test database size depends on the accuracy but usually it’s enough to have 10 minutes of transcribed audio to test recognizer accuracy reliably. The process is described in tutorialtuning.
Google API
利用google API来处理语音识别则相当准确,不过需要连接google,以下是我在VPS中执行的一段代码,可以看出,它将我的录音精准地翻译成了文字。

但是如果录音文件较大的话,会运行时间很长,并且会返回一个超时的错误,这很是让我苦恼。
不过幸运的是,speech_recognition支持将语音文件进行截取处理。例如,我可以只处理语音文件中的前15秒钟的内容。
with test as source: audio = r.record(source, duration=15)r.recognize_google(audio, language='zh-CN')'那一年的7月里我去了一趟希腊有独自从雅典跑到马拉松江哪条原始的马拉松路线马拉松直雅典一想跑上一趟'
从上面的结果看,简直比sphnix处理的效果好太多了。
通过看帮助文档发现speech_recognition不仅可以截取前面的录音,还可以截取中间的。
In [18]: r.record?Signature: r.record(source, duration=None, offset=None)Docstring:Records up to ``duration`` seconds of audio from ``source`` (an ``AudioSource`` instance) starting at ``offset`` (or at the beginning if not specified) into an ``AudioData`` instance, which it returns.If ``duration`` is not specified, then it will record until there is no more audio input.
例如我想处理5秒至20秒之间的内容。
with test as source: audio = r.record(source, offset=5, duration=15)r.recognize_google(audio, language='zh-CN')'要独自从雅典跑到马拉松江哪条原始的马拉松路线马拉松直雅典一项跑上一趟为什么要一想到呢因为星辰变从雅典市中心出发'。
世界真奇妙,更多python语音识别的例子,大家可以继续去发现哦!
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
【核心关键词】客户、数据分析、指标体系、数据采集、数据指标、业务数据、分析思路、业务需求、分析方法 【专访摘要】本次 CDA ...
2026-07-24在数据分析、业务建模与数字化运营体系中,原始业务数据普遍存在缺失、重复、异常、口径不一致等质量问题,直接用于分析与建模会 ...
2026-07-24 很多数据分析师能熟练计算均值、标准差,但当被问到“如何用一张图让业务方3秒内看懂核心结论”“面对不同数据类型该怎么选 ...
2026-07-24在数据驱动的精细化运营体系中,指标是业务判断、效果复盘、策略优化的核心依据。随着企业数据化程度提升,指标数量持续膨胀,但 ...
2026-07-23在用户运营与产品增长体系中,留存是衡量产品真实价值与用户粘性的核心标尺,也是决定用户生命周期价值、获客投产比的底层因素。 ...
2026-07-23 很多数据分析师精通Excel、SQL、Python等工具,但当被问到“面对一个具体的业务问题,该用什么分析方法”“描述性分析和诊断 ...
2026-07-23【核心关键词】埋点、产品、互联网、数据库、决策、数据分析、产品经理、商业模式、移动互联网、指标体系、运营模块、大数据平 ...
2026-07-22在高并发、大数据量的业务系统中,单表数据量达到千万级甚至亿级后,会出现查询性能骤降、索引维护成本飙升、存储扩容困难等问题 ...
2026-07-22 很多企业团队并非缺乏指标,而是陷入“指标失控”:仪表盘上堆满实时跳动的数据,却无法回答“当前瓶颈在哪、下一步该做什么 ...
2026-07-22在金融风控、企业运营、行业研究等数据分析场景中,大量数据以面板数据形态存在:例如多家分支机构连续多个季度的风险指标、多位 ...
2026-07-21 很多数据分析师每天都在计算指标、制作报表,但当被问到“什么叫指标数据元”“指标数据标准包含哪些核心维度”“指标数据质 ...
2026-07-21一、活动介绍 2026暑期CDA备考冲刺季,为想利用假期拿证的你量身打造。考点胶囊内容搭配多重硬核福利,让你在旅行、实习、居家 ...
2026-07-21金融行业的运营风险贯穿业务全流程,涵盖交易欺诈、操作违规、流程漏洞、合规偏差、客户信用异常等多元场景,是银行、保险、证券 ...
2026-07-17财产保险作为金融行业的核心板块,涵盖车险、家财险、责任险、企财险等多元品类,是个人与企业抵御财产风险、经营风险的重要保障 ...
2026-07-17 很多数据分析师能熟练写SQL、做透视表,但当被问到“数据是从哪里来的?经过哪些加工才进入数据仓库?ETL具体做了什么?”时 ...
2026-07-17【核心关键词】模块、餐饮、客户、门店、企业、订单、供应链、多样化、产品、生产计划、数据分析、生产管理、物料管理、业务分 ...
2026-07-16在数字化分析时代,原始数据本身不具备业务价值,只有通过科学的统计学方法加工、拆解、验证与解读,才能挖掘数据背后的规律、差 ...
2026-07-16 很多数据分析师能熟练地写SQL、做透视表、算描述性统计,但当被问到“如何预测用户流失概率”“如何归因销量下滑的关键因素 ...
2026-07-16在描述性统计分析、数据预处理、异常值排查与多组数据分布对比工作中,箱线图(Box Plot)是应用最广泛的可视化与统计工具之一。 ...
2026-07-15在企业数据存储、业务统计与数据分析工作中,绝大多数业务数据都带有时间维度属性,例如订单创建时间、用户注册时间、支付完成时 ...
2026-07-15