Octave提供了一些处理音频数据的函数。音频“采样”是a/D转换器的单个输出值,即小整数(通常为8或16位),音频数据只是一系列这样的采样。它可以从三个参数来表征:采样率(以每秒或Hz的样本为单位测量,例如8000或44100)、每个样本的位数(例如8或16)和通道数(1用于单声道,2用于立体声等)。
有许多不同的格式来表示这种数据。目前,只有两个最受欢迎,linear encoding和mu-law,从Octave支持。Guido van Rossum有一个关于音频格式的优秀常见问题解答guido@cwi.nl可以在任何常见问题ftp网站上找到,特别是在rtfm.mit.edu
目录中的/pub/usenet/news.answers/audio-fmts.
Octave只是将音频数据视为样本向量(目前还不支持非单声道数据)。假设使用线性编码的音频文件以lin或raw扩展名结尾,并且以μ律编码保存数据的文件以au, mu或snd结尾.
y =
lin2mu (x)
¶y =
lin2mu (x, n)
¶将音频数据从线性转换为μ律。
如果n为0(默认值)则线性值使用范围为-1≤x≤1,如果n是8或16则为n-位有符号整数。μ律值是8位无符号整数,范围为0≤y≤ 255.
详见: mu2lin.
y =
mu2lin (x)
¶y =
mu2lin (x, n)
¶将音频数据从μ律转换为线性。
μ律值为8位无符号整数,范围为0≤y≤ 255. 当n为零(默认值)时,线性值使用-linmax≤ x linmax范围中的浮点值。这里的linmax= 32124/32768 =~ 0.98
。如果n是8或16则使用n-位有符号整数。
编程说明:mu2lin
将最大μ律输入map到略低于用线性标度表示的最大值([-0.98,+0.98])的值。因此,mu2lin(lin2mu(x))
可能无法再现原始输入。
详见: lin2mu.
data =
record (sec)
¶data =
record (sec, fs)
¶系统默认音频输入录制sec秒的音频,数据采样率为每秒8000个样本。
可选参数fs指定了录制的采样率。
要对音频录制进行更多控制,请使用audiorecorder
类。
(y)
¶(y, fs)
¶(y, fs, nbits)
¶播放音频数据y以采样率fs到默认音频设备。
音频信号y可以是分别表示单声道或立体声音频的向量或两列数组。
如果fs如果未给定,则使用每秒8000个样本的默认采样率。
可选参数nbits指定要播放到音频设备的位深度,默认为8位。
要对音频播放进行更多控制,请使用audioplayer
类。
(y)
¶(y, fs)
¶(y, fs, nbits)
¶(…, [ymin, ymax])
¶缩放音频数据y并以采样率播放fs到默认音频设备。
音频信号y可以是分别表示单声道或立体声音频的向量或两列数组。
如果fs如果未给定,则使用每秒8000个样本的默认采样率。
可选参数nbits指定要播放到音频设备的位深度,默认为8位。
默认情况下,y自动标准化为范围[-1,1]。如果给定范围[ymin, ymax]则在范围ymin≤ y≤ ymax内的y元素被缩放到范围[-1,1]。
要对音频播放进行更多控制,请使用audioplayer
类
详见: sound, @audioplayer/audioplayer, record.
版权所有 © 2024 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号