Python SpeechRecognition库安装及使用中文识别Python SpeechRecognition库安装及使用中文识别

这篇具有很好参考价值的文章主要介绍了Python SpeechRecognition库安装及使用中文识别Python SpeechRecognition库安装及使用中文识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python里的SpeechRecognition库是一个很好用的语音识别库,提供了将语音转换成文字的方便的方法。

安装


    使用pip即可

pip install SpeechRecognition

语音


Speechrecognition主要是将一些常见的语音识别api封装成了函数并且直接有调用麦克风的方法,用起来很方便。


最终要传给语音识别函数的是名为AudioData的对象,为了得到AudioData对象,我们有常用的两种办法:用音频文件或直接录音。具体使用如下:

import speechrecognition as sr

r = sr.Recognizer()

直接录音

with sr.Microphone() as source:
    audioData = recognizer_instance.listen(source,time)


此处audioData就是我们要的

用音频文件

audioFile = sr.AudioFile("Path/to/audio/file/audioFile.wav")
with audioFile as source:
   audioData = r.record(source)


此处audioData就是我们要的
r是Recognizer对象,语音输入、识别大部分操作用它进行

with用来创建上下文,这样sr打开麦克风或文件用完后就会关掉

Microphone接受一个整数参数,代表麦克风硬件编号,默认是系统默认


识别


识别这部分主要用speechrecognition封装的api和其他方法,包括:

speechrecognition库怎么用,python,语音识别
其中大部分是只能在线使用的,且需要对应的api_key,去获得api_key,你就得注册他们的服务,可能要给钱,比较麻烦。但是其中也有无需注册或付费的和能线下使用的。

具体来说,我们还是需要用Recognizer对象,用它的各种方法(如上图)进行语音识别,以下列举几个好用的。

Google Speech API

Google Speech API 是使用时不必须提供api_key的,但是既然它是google的服务,国内使用是要用魔法的。它使用Recognizer的recognize_google()方法,此方法有两个参数比较重要,AudioData和language,前者是文章上部分提到的,后者是识别的语言,是字符串,形如"zh-CN"或"en-US"或别的。举例,以下这个程序将audio.wav以英语识别并输出:

import speech_recognition as sr

r = sr.Recognizer()

test = sr.AudioFile('/Path/to/audio/audio.wav')

with test as source:
    audio = r.record(source)

said = r.recognize_google(audio, language='en-US')
print("google think you said:",said)

CMU Sphinx

CMU Sphinx是可以线下使用的,但是可能效果稍微差点,且需要一个额外的库:

pip install pocketsphinx


这个额外的库默认只有英语的模型。如果要识别中文语音,需要在 python安装目录\Lib\site-packages\speech_recognition\pocketsphinx-data\ 下,增加一个zh-CN的模型。这个中文模型,如果你按照提示去github

(https://github.com/Uberi/speech_recognition/blob/master/reference/pocketsphinx.rst)

上找,会发现作者把普通话的模型放在谷歌云盘上了,但是别处还是有的: 

https://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/Mandarin/

下好之后是不能直接用的,需要改名,把

 文件夹名改成zh_CN

 zh_cn.lm.bin改成language-model.lm.bin

 zh_cn.dic改成pronounciation-dictionary.dict

 子文件夹zh_cn.cd_cont_5000改成acoustic-model 内容不动

speechrecognition库怎么用,python,语音识别
改成

speechrecognition库怎么用,python,语音识别

总之就是和上一级目录的en-US里的文件格式一样

然后就可以用啦,用法和用google差不多,只是r.recognize_google(audioData, language='en-US')要换成 r.recognize_sphinx(audioData, language='en-US')

Vosk

使用Vosk也是一种线下使用的方法。我个人推荐这个,方便且准确率是不错的。

为了使用vosk, 首先你需要下载vosk的库,直接:

pip install vosk


speechrecognition提供了方便的使用vosk的函数

recognizer_instance.recognize_vosk(audioData)
和上面用sphinx和谷歌类似。但是这样直接运行会报错,缺少vosk的模型,顺着提示,去到

https://alphacephei.com/vosk/models

speechrecognition库怎么用,python,语音识别
直接下载需要的就行,一般用有small字样的。  下好的文件解压放在项目同目录下即可,下的什么语言就识别什么语言(其实不太严谨。实际上,recognize_vosk()其实还有一个language参数,但如果填一个en-US然后用中文模型的话也是可以的,按中文识别)

别的

注意,语音识别函数返回的是字符串,但可能不是我们想要的格式,它会返回这样的字符串:

{"text"="你说的内容"}

可能要调整一下,可以写一个函数,比如:

def formulateResult(resu):
    start = resu.index('"', resu.index('"', resu.index('"') + 1) + 1) + 1
    end = resu.index('"', start)
    return resu[start:end]


\^o^/ 文章来源地址https://www.toymoban.com/news/detail-784117.html

到了这里,关于Python SpeechRecognition库安装及使用中文识别Python SpeechRecognition库安装及使用中文识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python毕设选题 - 深度学习OCR中文识别 - opencv python

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年04月09日
    浏览(89)
  • 几种python入门级OCR开源库中文识别效果对比

    目录   素材图片 pytesseract easyocr PaddleOCR 总结 pytesseract是google做的ocr库,一般用在验证码的识别。实测中文的识别速度最快,但是效果也是最差的。 安装: 下载中文语言包,把语言包放在tessdata目录: chi_sim.traineddata 编码: 结果: 支持CUDA的显示进行运算,因笔者没有此类显

    2024年02月16日
    浏览(47)
  • Python通用验证码识别OCR库ddddocr的安装使用

    之前写了一篇关于java使用tess4j进行图片文字识别.md的,对于应付简单的数字识别还是能应付,但总体效果、识别率很一般,后来同事找到了这一篇写的,(亲测好用便捷)Python通用验证码识别OCR库ddddocr的安装使用教程,试用了下确实效果要好很多,因此也记录一下,算是白嫖了

    2024年02月05日
    浏览(52)
  • 【python爬虫】批量识别pdf中的英文,自动翻译成中文下

    不管是上学还是上班,有时不可避免需要看英文文章,特别是在写毕业论文的时候。比较头疼的是把专业性很强的英文pdf文章翻译成中文。我记得我上学的时候,是一段一段复制,或者碰到不认识的单词就百度翻译一下,非常耗费时间。之前的文章提供了批量识别pdf中英文的

    2024年02月10日
    浏览(42)
  • 【python爬虫】批量识别pdf中的英文,自动翻译成中文上

    不管是上学还是上班,有时不可避免需要看英文文章,特别是在写毕业论文的时候。比较头疼的是把专业性很强的英文pdf文章翻译成中文。我记得我上学的时候,是一段一段复制,或者碰到不认识的单词就百度翻译一下,非常耗费时间。本文提供批量识别pdf中英文的方法,后

    2024年02月10日
    浏览(38)
  • HyperLPR3车牌识别-五分钟搞定: 中文车牌识别光速部署与使用

    原文地址:https://tunmx.github.io/posts/CH-HyperLPR3-Quick-Luanch/ HyperLPR在2023年初已经更新到了v3的版本,该版本与先前的版本一样都是用于识别中文车牌的开源图像算法项目,最新的版本的源码可从github中提取:https://github.com/szad670401/HyperLPR 使用Python平台可以直接使用pip进行安装,方

    2024年01月15日
    浏览(35)
  • 6款支持中文语音识别开源软件的简单使用

    摘自百度百科 语音识别技术,也被称为自动语音识别(Automatic Speech Recognition,ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。与说话人识别及说话人确认不同,后者尝试识别或确认发出语音的说话人而非其中所包含

    2024年02月12日
    浏览(48)
  • Go语言使用gosseract 库来进行图像文字识别,识别出来的中文是乱码的?如何解决?

    如果您在使用 gosseract 库进行图像文字识别时,得到的中文文字是乱码,可能是因为默认情况下 gosseract 以及 Tesseract 引擎并不支持中文字符的识别。要解决这个问题,您需要进行一些配置和设置。 以下是解决方案的步骤: 1 安装 Tesseract 和 Language Data :确保您已经安装了 Te

    2024年02月02日
    浏览(55)
  • Jenkins中文插件安装与使用

    进入Jenkins的系统管理—插件管理,选择Available plugins搜索Locale,进行下载安装 安装完成之后,进入系统配置,找到Locale,Default Language输入zh_CN为中文模式,输入en_US为英文模式 Ignore browser preference and force this language to all users:忽略浏览器首选项并强制所有用户使用该语言,这

    2024年01月24日
    浏览(47)
  • spacy 中文语义分析下载安装使用

    spaCy  安装spacy 安装模型 https://github.com/explosion/spacy-models/releases 找到对应的模型,下载,如下图 下载是gz,下载后安装    参考 spaCy中文实体识别实战-《动物庄园》 - 知乎 https://www.cnblogs.com/rumenz/articles/13709437.html

    2024年02月09日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包