离线语音识别编程示例

2018-12-21 17:56:24朱德平新疆乌鲁木齐
数码世界 2018年9期
关键词:搜索引擎文本

朱德平 新疆乌鲁木齐

1.音频处理

语音识别前,需要根据语音识别API的要求,对原始音频文件进行预处理,下面主要介绍音频编码转换和语音分割两项功能。

1.1 编码转换

语音识别API一般对语音文件的编码算法、声道数、采样频率、量化比特等参数有要求,因此需要对原始语音文件进行编码转换,可以利用FFmpeg或者Pydub实现。FFmpeg是一个跨平台的音视频录制、转换、流化工具,其音频编码转换的命令示例:

os.system("ffmpeg -i speech.mp3 -acodec pcm_s16le-ac 1 -ar 16000 speech.wav")

Python语言中将speech.mp3转换成单声道、16K采样率、16量化比特的wav文件。

Pydub是Python的一个音频库,提供了简单、易于使用的音频编程接口,其中编码转换的示例:

from pydub import AudioSegment

speech = AudioSegment.from_mp3("speech.mp3")

speech.export("speech.wav", format="wav",parameters=["-ac", "1", "-ar", "16000"])

1.2 语音分割

由于语音识别API通常对语音的时长有限制,例如不能超过60s等,因此需要对语音文件进行分割,一般采用VAD进行分割。VAD(语音激活检测,又叫语音端点检测),是指通过对语音信号和噪声信号的分析,区别语音区域和非语音区域,利用VAD进行语音分割的基本思路是将语音分割成时长10-30ms的帧,判断每一帧是否是语音信号。 WebRTC VAD是VAD的一个常用实现,py-webrtcvad是它的Python包装库,代码示例:

import webrtcvad

vad = webrtcvad.Vad()

sample_rate = 16000

result=vad.is_speech(frame, sample_rate)

其中frame是分割的帧,result为帧是否为语音的布尔值。

2.语音识别

百度AI开放平台支持离线语音识别,要求音频文件单声道、采样率8K或16K,16位量化比特,文件格式是pcm、wav等。语音时间最长60s。代码示例:

from aip import AipSpeech

aipSpeech = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

with open(file_path, 'rb') as file:

speech_content = file.read()

result = aipSpeech.asr(speech_content, 'pcm', 16000, {'dev_pid': 1536})

if result["err_no"] == 0:

print("识别成功,文本是:{}".format(result["result"][0]))

else:

print("识别出错:{}".format(result["err_msg"]))

其中APP_ID,、API_KEY,、SECRET_KEY注册百度平台和创建应用时系统会创建和分配,file_path是语音文件名,dev_pid属性设置语言类型,1536为普通话识别,1537为英语识别。识别结果result为Json结构的数据,其中result["err_no"]若为0,代表识别成功,result["result"]是识别的1-5个候选结果,若result["err_no"]为其它数字,则表示识别出错,result["err_no"]为错误码。……

登录APP查看全文

猜你喜欢
搜索引擎文本
初中群文阅读的文本选择及组织
甘肃教育(2020年8期)2020-06-11 06:10:02
在808DA上文本显示的改善
基于doc2vec和TF-IDF的相似文本识别
电子制作(2018年18期)2018-11-14 01:48:06
文本之中·文本之外·文本之上——童话故事《坐井观天》的教学隐喻
論《柳毅傳》對前代文本的繼承與轉化
人间(2015年20期)2016-01-04 12:47:10
网络搜索引擎亟待规范
中国卫生(2015年12期)2015-11-10 05:13:38
Nutch搜索引擎在网络舆情管控中的应用
警察技术(2015年3期)2015-02-27 15:37:09
广告主与搜索引擎的双向博弈分析
如何快速走进文本
语文知识(2014年1期)2014-02-28 21:59:13
知识漫画
百科知识(2012年11期)2012-04-29 08:30:15