最近因?qū)W習(xí)任務(wù),對語音識別需要了解,所以現(xiàn)在就把一些學(xué)習(xí)過程遇到的問題解決方法分享給大家。首先pyhon提供了許多語音識別庫,大致包含:

上述語音識別軟件庫各個之間的側(cè)重點不同,如:谷歌云語音側(cè)重語音向文本轉(zhuǎn)換,又如wit與apiai還提供超出基本語音識別的內(nèi)置功能(識別講話者意圖的自然語言處理功能)。由于我僅僅是做簡單的中文語音識別,所以使用的是SpeechRcognition這個語音識別庫。
SpeechRcognition的特點優(yōu)勢
- 滿足幾種主流語音 API ,靈活性高;
- Google Web Speech API 支持硬編碼到 SpeechRecognition 庫中的默認(rèn) API 密鑰,無需注冊就可用;
- SpeechRecognition無需構(gòu)建訪問麥克風(fēng)和從頭開始處理音頻文件的腳本, 只需幾分鐘即可自動完成音頻輸入、檢索并運行。因此易用性很高。
怎么使用SpeechRcognition?
1. 安裝SpeechRcognition
下載地址:https:///project/SpeechRecognition/
安裝命令: pip install SpeechRcognition
不過僅僅安裝這個是不夠的,還需要安裝對應(yīng)需要的資源庫,如下圖:

2. SpeechRcognition的識別類(器)

以上七個中只有 recognition_sphinx()可與CMU Sphinx 引擎脫機(jī)工作, 其他六個都需要連接互聯(lián)網(wǎng)。另外,SpeechRecognition 附帶 Google Web Speech API 的默認(rèn) API 密鑰,可直接使用它。其他六個 API 都需要使用 API 密鑰或用戶名/密碼組合進(jìn)行身份驗證。
3. 下面進(jìn)行中文語音識別
我在這里使用的是recognize_sphinx()語音識別器,它可以脫機(jī)工作,但是必須安裝pocketsphinx庫(詳細(xì)安裝過程見https://blog.csdn.net/zouxy09/article/details/7942784),若要進(jìn)行中文識別,還需要兩樣?xùn)|西。一、語音文件(SpeechRecognition對文件格式有要求);二、中文聲學(xué)模型、語言模型和字典文件,下面進(jìn)行詳細(xì)描述:
SpeechRecognition支持語音文件類型
WAV: 必須是 PCM/LPCM 格式
AIFF
AIFF-C
FLAC: 必須是初始 FLAC 格式;OGG-FLAC 格式不可用
pocketsphinx需要安裝的中文語言、聲學(xué)模型
下載地址:http:///projects/cmusphinx/files/Acoustic%20and%20Language%20Models/

安裝步驟
- 下載cmusphinx-zh-cn-5.2.tar.gz并解壓


- 在python安裝目錄下找到Lib\site-packages\speech_recognition

點擊進(jìn)入pocketsphinx-data文件夾,并新建文件夾zh-CN

在這個文件夾中添加進(jìn)入剛剛解壓的文件,需要注意:把解壓出來的zh_cn.cd_cont_5000文件夾重命名為acoustic-model、zh_cn.lm.bin命名為language-model.lm.bin、zh_cn.dic中dic改為dict格式。

中文識別實際例子
1. 實際的代碼程序
# -*- coding: utf-8 -*-
# /usr/bin/python
# 作者:kimicr
# 實驗日期:20190820
# Python版本:3.6.3
import speech_recognition as sr
r = sr.Recognizer() #調(diào)用識別器
test = sr.AudioFile("C:\\Users\cc\Desktop\\test1.flac") #導(dǎo)入語音文件
with test as source:
audio = r.record(source)
type(audio)
c=r.recognize_sphinx(audio, language='zh-cn') #識別輸出
print(c)
輸出的結(jié)果:由于語音自己錄的不好,所以識別的不是很高??梢哉依佣嘣囋?br>

2. 程序中可能出現(xiàn)的問題
一般出現(xiàn)問題在于這一行代碼:test = sr.AudioFile(“C:\Users\file\Desktop\test1.flac”) #導(dǎo)入語音文件。出現(xiàn)的問題為:

這是由于該文件地址是直接通過打開文件屬性方式,摘到文件路徑,復(fù)制過來的,問題出現(xiàn)是可能里面包含有了非法字符,解決辦法就是重新手動輸入這一行代碼(特別是文件路徑)
|