英语自动复读软件

2020-08-16 13:48朱子文李思杰付峥
商情 2020年35期

朱子文 李思杰 付峥

【摘要】使用Android Studio安卓开发工具设计一款Android端的英语复读App,该APP可以自动识别两段听力之间的停顿,并根据用户设置进行特定时间间隔的暂停。通过音频二进制文件读取音频信息,所得到的的音频数据帧信息再通过App逻辑层处理,进行音频格式和数据帧分析,以获取英语听力两段对话的停顿时刻。通过用户在英语听力播放前的相关设置,自动暂停,让用户不必进行多余的手动暂停操作,方便快捷。

【关键词】英语复读  APP  音频分析

一、引言

音频文件是在计算机内采用特定格式存储和表示声音的文件,将声音数据以二进制的格式存储在计算机中。音频文件实质上就是用离散的数字信号表示连续的模拟信号,音频文件除了首部对音频的格式大小等信息进行描述之外,剩下部分就是对声音的采样数据,以首部规定的采样格式对实际声音信号进行采样描述。音频文件每个采样数据描述的是该音频在该采样时刻对应的音频幅值大小,对应实际声音信号的大小。虽然有限大小的音频文件对音频的描述是有限的,但是只要采样率够高,即单位时间内采样的次数足够多,人耳对声音的分辨就能达到与真实声音信号一样的程度。

也正是因为音频文件的大小是有限的,采样率是有限大的,所以就存在不同格式和不同音质的音频类型,对应的音频文件大小也不同。一般音频的音质越好,对应的音頻文件所需存储空间就越大。常见的音频格式有CD、WAVE、MPEG、MP3、MIDI、WMA等,其中,CD标准格式为44.1K的采样频率,16位量化位数(即一个采样点幅值的存储位数),可以说是近似无损的,它的声音基本忠于原声。

而其他几种音频格式也有各自的优点,就拿WAVE和MP3来说,WAVE音频文件大小一般是MP3音频文件的10倍,相应地音质也明显高于 MP3格式的音频,MP3音频文件的压缩是有损压缩,牺牲了声音文件中12KHz到16KHz高音频这部分的质量来换取文件的尺寸。但由于MP3文件压缩率高,所以是目前应用最广泛的音频格式之一。

二、分析与设计

(一)音频格式分析

进行英语听力播放前,需要先对听力文件的音频数据进行分析,音频文件首部存储着音频格式的相关信息,应用中以字节流形式将格式信息读出,判断出音频格式和采样格式等参数。需要读出声道数,判断音频是单声道音频还是双声道立体音,双声道格式下音频数据部分是左右声道的采样点依次存储,分析时某个特定数据帧的音频幅值取左右声道的叠加;需要读出采样位数(即单个采样数据的存储位数),以使程序能够准确提取到每一个采样数据而不会错位;需要读出采样率(即单位时间内采样的次数),以判断每秒的采样数据量,结合“静音”采样点连续出现的个数,计算出英语听力相应时间段“静音”的连续时长,以此判断是否为符合条件的停顿点;识别出数据量大小以计算整个音频的采样数据个数,所有这些格式信息规定了后面数据帧部分的具体结构。

(二)数据帧分析

因为数据帧部分的采样数据表示的是音频在该采样时刻的幅值大小,单位时间内有固定数量的采样数据,所以可以对幅值进行界限的分析,若音频信息持续一段特定时间(即一定量的采样数据)幅值处于界限以下的“静音”状态,则该时间段被判为两个听力题之间的暂停时间段,同时需要排除英语听力刚开始时候的静音,这一段不属于需要暂停的时间段。再者,对于双声道音频,需要将左右声道的音频采样幅值进行叠加,然后再进行分析。

(三)音频处理过程

用户在点击播放音频之前,可以对音频的停顿时长(即用户期望两段听力之间的停顿时长)和判断间隔(即多长时间的“静音”才被判定为两题间的停顿)进行设置,在点击播放音频后,程序先对音频文件进行数据帧的分析,使用一个特定算法计算出该音频的所有题目之间的停顿时刻,并根据用户事先设置的需求进行自动处理。由于单位时间内采样数据量过多,如果把每一个采样点都计算在内,处理量过大,会导致程序运行处理的效率大大降低,所以需要设置一个合适的时间间隔进行跳跃,要既能保证停顿点判断的准确性,又能有效提高程序的运行效率。

(四)Android界面逻辑设计

考虑到用户使用的不同设备的分辨率与屏幕大小都不一样,所以软件UI采用RelativeLayout相对布局,让用户在使用不同设备的时候界面都能正常显示。

UI界面上添加了一个悬浮按钮,将众多复杂的操作隐藏其中,使主题界面显得简洁,提高用户使用体验。在主要功能实现部分,采用线程监听播放状态,当用户点击暂停时,线程控制进度条停止,当用户点击播放则继续移动。并且用户能够通过ContentResolver自主添加所需处理的音频,达到自由学习的目的。

(五)数据信息存储

由于英语听力文件普遍在20-30分钟,总采样数目过大,在英语播放时进行音频“静音段”判断会占据Android设备过多的运行资源,从而影响App的运行性能,所以需要进行数据信息的缓存操作,存储已添加播放过的音频路径、总采样数、停顿点等信息,其中停顿点采集耗费的运行资源较多,对其进行缓存是提高应用运行效率的重要措施。

(六)具体设计

基于音频幅值判断的“静音段”检测方便快捷,但是要想音频检测具有更好的普适性,则需要对市面上的英语听力文件进行一个广泛的统计分析,得到关于两题之间最普遍的间隔时长;同时,需要调查市面上主要音频格式的采样率,让应用能够分析处理尽可能多类型的采样率。再者,还需要对英语听力的“静音”幅值范围进行统计分析,得到最合适的范围,以使英语听力的“静音”检测更加精确。

三、小结

基于Android的英语自动复读软件,很好地结合了音频处理技术和英语听力练习的需求,让英语听力练习更加智能化。

参考文献:

[1]王先全,李建蜀.WAVE声音文件格式的分析及其合成[J].电脑开发与应用,1999.07:29-30.

[2]高彦.基于相似度的音频检索系统的设计与实现[D].复旦大学,2011.

[3]冯哲.基于内容的视频检索中的音频处理[D].复旦大学,2004.

[4]李刚.疯狂Java讲义[M].电子工业出版社,2008.

基金项目:课题资助:南昌航空大学第14届“三小”课题。