use python and IBM speech to text

wav 转 text ,感觉 还是IBM 的 speech to text 比较靠得住。

比百度的语音识别API好上太多。

  1. https://speech-to-text-demo.mybluemix.net/

——————————————————————–

注册拿到 帐号密码后,

有一个包比较 方便 调用

是SpeechRecogntion

  1. https://pypi.python.org/pypi/SpeechRecognition/

pip install 或者 按照说明 安装就行了

———————————————————————

SpeechRecognition包含多个网站的API

然而Google的并不能用,AT&T的没试过。

——————————————————————–

在debian 上测试的时候有个问题,需要 管理 员权限 。

可能是内部有过wav  2 flac 然后把临时文件 保存在dist-package下了,

——————————————————————–

SpeechRecognition有示例代码wav_transcribe.py;

如果用于识别中文,需要在speechrecognition/__init__.py中,

修改recognize_ibm函数的482行

  1. assert language in [“en-US”“es-ES”“ja-JP”], language must be a valid language.”

增加”zh-CN”项,

  1. assert language in [“en-US”“es-ES”“ja-JP”“zh-CN”], language must be a valid language.”

———————————————————————

SpeechRecognition的用法 如下

  1. import speech_recognition as sr

读wav文件

  1. r = sr.Recognizer()
  2. with sr.WavFile(path) as source:
  3.     audio = r.record(source)

然后可以调用 recognize_ibm 返回识别结果,是utf8格式的,一般写起来 会有些问题

view plain copy

  1. IBM_USERNAME = ‘XXXXXXXX’
  2. IBM_PASSWORD= ‘XXXXXXXX’
  3. text = r.recognize_ibm(audio, username = IBM_USERNAME, password = IBM_PASSWORD, language = ‘zh-CN’)

text 就是识别结果,可能会有编码问题之类的。

发表评论