数说声音:计算机声音处理和数值计算
2021-08-28于方军梁永
中国信息技术教育 2021年15期
于方军 梁永



声音是人类交流信息的一种重要方式,计算机对声音信息的处理和图像信息处理同样是信息技术教学中涉及的重要内容。常用的声音编辑软件可以调整音量,改变音调,进行声音混音等操作。本文用Python代码,通过读取计算机里的一段WAV格式音频文件,改变采样频率,观察声音播放速度及音调变化等,帮助学生理解声音编辑的背后是一系列复杂的数学运算。在此基础上,用开源的离线语音识别CMUSphinx系统,实现一个基于本地语音模型的声音识别,结合开源硬件实现简单的硬件控制实验,让学生通过实验来体验语音识别背后的数据特征提取。
首先,选择图形化编程里面的小猫叫声音文件Meow.wav进行编辑,图1是声音文件的波形及图形化编程所提供的简单编辑工具界面,下面的几个按钮可以实现快速播放、慢速播放,响亮、轻柔等播放效果,笔者带领学生从数据处理的角度研究一下这些效果是如何实现的。
● 改变采样点数值:观察声音变化
WAV格式的文件是由44个字节的文件頭(包括声道数、量化位数、采样频率、采样点数等信息)和后面的音频采样数据组成。因此,通过数学计算把采样数值改变,就能改变声音的音量值,实现“响亮”“轻柔”两个按钮的效果,进而让学生理解这些按钮背后的代码,如图2所示。
图2中的代码,读取了Moew.wav的值,通过输出数据可以发现,它是一个单声道,采样频率为11025hz,后面的数组是每个采样点的纵坐标数值[33,21,-34,...,-30,40,-229],改变后边采样点的数组值,如图2代码中的yuan[1]*2,把每个采样点的纵坐标值变为原来的2倍,即变为[66,42,-68,...,-60, 80,-458]。……
登录APP查看全文
