1。2 国内外研究现状与水平
1。2。1 国外发展
1。2。2 国内发展
1。2。3 识别模式
1。2。4 数据库
1。3 发展趋势
1。4 本课题的基本内容、重点、难点
1。4。1 本课题的基本内容
本系统分为语音识别、音频切割、音频转码三个功能模块。语音识别:由操作者上传音频文件或者音频流地址,通过ffmpeg切流转码交给百度语音识别api加以识别。音频切割:操作者上传音频文件或者音频流地址以及相关参数,通过ptyhon调用ffmpeg进行音频的切割。音频转码:可以将常见的音频格式相互转化,例如:MP3、WMA、WAV等。
1。4。2 本课题的重点
使用python编程,实现数据特征提取,在此基础上实现通过api的语音识别;将语音识别功能编写成可供其他模块调用的函数,为进一步实现语音识别系统提供基础;并且从中培养、提高查阅文献和综合运用知识的编程开发能力。
学习并使用celery进行任务的调度
Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必需工具。
Celery支持使用任务队列的方式在分布的机器、进程、线程上执行任务调度。
任务队列是一种在线程或机器间分发任务的机制。
消息队列的输入是工作的一个单元,称为任务,独立的职程(Worker)进程持续监视队列中是否有需要处理的新任务。
Celery 用消息通信,通常使用中间人(Broker)在客户端和职程间斡旋。这个过程从客户端向队列添加消息开始,之后中间人把消息派送给职程,职程对消息进行处理。
Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。
1。4。3 本课题的难点
将百度语音识别api不支持的音频格式和采样率转换为可被识别的:pcm(不压缩)、wav、opus、speex、amr、x-flac。原始 PCM 的录音参数必须符合 8k/16k 采样率、16bit 位深、单声道。
通过设置对应的语音识别垂类:在代码中填写识别的垂类领域,识别结果将优先指向已设置的垂类,可以使得识别结果更准确,有效地提高准确率。
1。5 开发所选择的工具
1。5。1 硬件部分
为了完成语音的采集和数字化,硬件一般包括三个部分:传感器及信号调理电路,A/D转换电路,PC机接口电路。但是由于声卡已经成为计算机的标准配置,而且拥有对声卡进行操作的函数,所以在本系统中直接采用话筒和声卡实现这部分功能。From~优Y尔R论^文W网wWw.YoUeRw.com 加QQ7520.18766
1。5。2 软件部分
程序整体使用python编写,使用flask框架编写页面和网络服务,使用celery进行任务的调度,实现具体任务的异步发布执行,ffmpeg进行音频处理。
(1) Python编程语言简介
Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。