声音是如何转化为数据的?
设备录制声音声音后,根据声音的振幅呈现出振幅图。横轴为时间线,纵轴为振幅。
对声音时间线采样
声音转化为数据的过程,就是将连续的时间每一个固定的时间间隔取一个幅度值,把时间离散化为时刻。
采样周期=1/采样频率
对振幅值量化
对纵轴的声音的振幅也要量化,计算机用0,1表示,不能表示一些小数,所以要对一些小数取整,量化就是对振幅值进行限定和近似的过程。
采样和量化后,将其进行编码。
量化位数越高,采样的精度就越高,声音的质量也就越好。通常:
采样单位的二进制数 单位:位/字节
固定电话:8位
网络歌曲:16位或以上
声道数:包含声道的个数,电话通常为单声道,音乐为双声道,还有4,5.1,7.1声道,声道越多,声音就会更加立体逼真。
比特率=采样频率*量化位数*声道数
数据量=比特率*持续时间
这些数据量往往很大,传输不易,人们就想到要将其进行压缩,减小数据量。
数据压缩原理:
重新编码,去掉原始数据中的冗余数据(即那些重复数据)。如:
AAAAAAAAAABBBBBBBBBB
将其进行数据压缩,就可以表示为 10A10B
将重复的数据用该值和重复的次数来代替,表达的信息一样,但是信息量减少了。
压缩分为有损压缩(用于压缩音频,视频)和无损压缩(用于压缩文件)。
在日常生活中,有的音频需要截取,拼接,这用python怎么做到呢?
截取与保存:
from pydub import AudioSegment as AS
song = AS.from_file('record.mp3', format='mp3')
song = song[4000:8500] + song[10000:14500]
file = song.export('song.mp3', format='mp3')
file.close()
注:
- 本py文件要与record.mp3位于同一文件夹
- 生成的song.mp3也位于该文件夹
- 拼接片段用“+”表示
- 如果保存片段要连续凭借N次,就乘以N
- 保存时需要指明文件格式
常见的音频格式:
wav:保存无压缩音频,声音质量好,但数据量大
mp3:压缩比高,可达10:1,且声音质量挺好
flac:无损压缩,比mp3好
rm:文件小,适合在线播放
wma: 优于mp3
根据乐谱生成音乐
步骤:
- 保留7个音符,用0表示停顿,简化后用字符串表示。
- 准备对应音符的mp3文件。
- 根据简谱将对应mp3文件拼接起来。
怎么准备对应音符的mp3文件?
先录制音符的发音,通过剪辑软件对其进行剪辑。
准备软件:
- 录音机
- 钢琴模拟器
- 音频剪辑工具
这些工具都有在线平台,如果电脑没有,可以去网上搜。
版权声明:本文为m0_69217114原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。