实战篇——测试工程师Python开发实战(17)

发表于:2023-9-07 09:38

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:胡通    来源:51Testing软件测试网原创

#
Python
  第三篇 实战篇
  利他之心,抛砖引玉。相比某种编程语言的专家,测试开发工程师可能更有必要成为一名“通才”,除了功能测试自动化测试,我们还需要学习其他领域的知识,例如性能测试、数据测试、安全测试、移动端测试等,然后利用Python代码实现一些个性化的测试工具封装,供团队或他人使用,发挥代码价值。
  质量意识应该是每个软件从业人员的共识,测试的目标是尽可能早地找到系统中存在的缺陷并使它们得到修复。从经济学角度来考虑,错误发现得越早,修复成本和风险就越低,后期错误的修复不仅会增加沟通时间,还可能引入新的问题,增加测试验证时间,项目也会有延迟上线的风险。开发人员也应具备基本的测试能力,以保证自己交付的代码是可用的,这是代码质量的最低要求。高质量的软件产品是一个软件团队所有成员都负责任地完成自己任务后的必然产物,无论是开发人员的自测,还是测试人员的专项测试,任何一个环节做得不到位,都会导致最终产品的质量问题。
  实战篇从质量角度出发,依据笔者的工作经验,提供各个测试领域、测试专业的工具代码示例,供开发人员或测试人员参考和借鉴,满足读者在实际工作中的测试需求。实战篇共6章(第7章~第12章),依次介绍音频测试工具开发、自定义套接字测试工具开发、接口测试工具开发、数据测试工具开发、性能测试工具开发和安全测试工具开发,每章从需求背景、涉及知识和代码解读3方面展开。
  第7章 音频测试工具开发
  现在短视频盛行,衍生出的直播行业也是热门,音视频质量好坏直接影响了音视频业务。Python具有很多音视频处理类的第三方库,可以用来开发一些检测工具。在本章中,我们基于Python演示如何进行MP3和WAV两种音频文件格式的校验和转换,主要从需求背景、涉及知识和代码解读3方面展开讲解。
  7.1  需求背景
  现在图像识别、语音识别等项目越来越热门,项目通过机器学习训练出一套模型,再将图像、音频等上传模型,就可以实现图像内容的识别、将音频转成文字等。
  但有时我们训练的模型可能不够完善,对格式的限制比较严格,例如只接收PNG格式的图片或者只接收MP3格式的音频等。这个时候我们就需要判断用户上传的文件格式了,如果不是我们可接受的格式,则直接返回文件格式错误,提示用户重新上传指定格式的文件。
  通常格式判断不能使用文件扩展名进行判断,我们将一个PNG格式的图片文件扩展名改成.jpg,它还是可以正常显示的,但实际的格式仍然是PNG,因为这张图片对应的字节流没有任何变化;音频文件也是同样的道理,将一个WAV格式的音频文件扩展名改成.mp3也是可以播放的,但它的格式仍然是WAV。
  本章将深入讲解音频文件格式,并结合代码示例进行分析解读。
  7.2  涉及知识
  音频格式,即音乐格式,是指要在计算机内播放或是处理音频文件,是对音频文件进行数、模转换的过程。音频格式最大带宽是20 000 Hz,速率介于40~50 000 Hz之间。音频文件是指存储声音内容的文件,人耳可以听到的声音频率范围为20 Hz~20 000 Hz的声波。工作中常见的音频文件根据压缩程度可以分为未压缩的音频格式、无损压缩的音频格式和有损压缩的音频格式3种类型,如表7-1所示。
表7-1  音频分类
  在所有音频格式中,首先推荐大家使用未压缩的音频格式存储的文件。顾名思义,这些音频文件本质上是未被压缩的。也就是说,它只是将真实世界的声波转换成数字格式保存下来,而不需要对它们进行任何处理。未压缩的音频格式最大的优点是真实,可以保留录制音频的详细信息,但需要占据较大的存储空间。
  未压缩的音频文件会占用大量空间,因此我们建议先压缩这些音频文件再进行存储。使用拥有高级算法的无损压缩技术,用户可以在缩小文件体积的同时保留原始数据。理想情况下,无损压缩技术可以使文件大小减小至1/2到1/5,同时仍保留原始数据。
  在日常生活中,大多数人并不希望音乐文件占用大量设备空间,因此人们常常使用有损压损的音频格式。采用有损压缩技术,可以大大减小文件体积,但音频的原始数据也会受到损害,有时,以此格式存储的音乐文件听起来甚至与原始音频毫不相像。
  为了更深入地了解音频文件,下面是一些重要的核心概念。
  ●采样:波是无限光滑的,采样的过程就是从波中抽取某些点的频率值,就是把模拟信号数字化。
  ●采样频率:也称采样率,是指录音设备在单位时间内对声音信号的采样数或样本数,单位为Hz(赫兹),采样频率越高能表现的频率范围就越大,声音的还原就越真实越自然,当然数据量就越大。一般音乐CD的采样率是44 100 Hz,所以视频编码中的音频采样率保持在这个级别就完全足够了,通常视频转换器也将这个采样率作为默认设置。
  ●采样位数:每个采样点能够表示的数据范围。采样位数通常有8位或16位两种,采样位数越大,所能记录声音的变化度就越细腻,相应的数据量就越大。
  ●声道数:声道数是指支持不同发声的音响的个数,它是衡量音响设备的重要指标之一。
  ●脉冲编码调制(pulse code modulation,PCM):对声音进行采样、量化的过程,未经过任何编码和压缩处理。
  ●编码:采样和量化后的信号还不是数字信号,将采样和量化后的信号转化为数字编码脉冲的过程称为编码,模拟音频经采样、量化和编码后形成的二进制序列就是数字音频信号。
  ●码率(比特率):在一个数据流中每秒钟能通过的信息量,单位为bit/s(bit per second)。例如,MP3常用码率有128 000 bit/s、160 000 bit/s、320 000 bit/s等,码率越高表示声音音质越好。MP3中的数据由ID3和音频数据组成,其中ID3用于存储歌名、演唱者、专辑、音轨等常见的信息。另外,码率=采样率×采样位数×声道数。
  提示
  正常人听觉的频率范围为20~20 000 Hz,根据奈奎斯特采样定理,为了保证声音不失真,采样频率应该在40?000 Hz左右。常用的音频采样频率有8 000 Hz、11 025 Hz、22 050 Hz、16 000 Hz、37 800 Hz、44 100 Hz、48 000 Hz等,如果采用更高的采样频率,还可以达到DVD的音质。
版权声明:51Testing软件测试网获得作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号