Time-stretch音频
读取音频信号。听音频信号,并绘制它随时间推移。
[AUDIOIN,FS] = audioread(“Counting-16-44p1-mono-15secs.wav”);T =(0:尺寸(AUDIOIN,1)-1)/ FS;情节(T,AUDIOIN)xlabel('时间(s)')ylabel(“振幅”)标题(原始信号的)轴紧网格上
声音(audioIn fs)
使用stretchAudio
申请1.5加速的因素。听修改后的音频信号,并随着时间的推移绘制它。采样率保持相同,但信号的持续时间减少了。
AUDIOOUT = stretchAudio(AUDIOIN,1.5);t =(0:大小(audioOut, 1) 1) / fs;情节(t, audioOut)包含('时间(s)')ylabel(“振幅”)标题(“修改的信号,加速比= 1.5”)轴紧网格上
声音(AUDIOOUT,FS)
减慢原始音频信号的0.75倍。听修改后的音频信号,并随着时间的推移绘制它。采样率与原始音频保持一致,但信号的持续时间增加了。
audioOut = stretchAudio (audioIn, 0.75);t =(0:大小(audioOut, 1) 1) / fs;情节(t, audioOut)包含('时间(s)')ylabel(“振幅”)标题(“修改的信号,加速比= 0.75”)轴紧网格上
声音(AUDIOOUT,FS)
stretchAudio
万博1manbetx使用默认的声码器方法时,在频域音频上支持TSM。将TSM应用于频域音频使您能够对多个TSM因子重用STFT计算。
读取音频信号。听音频信号,并绘制它随时间推移。
[AUDIOIN,FS] = audioread(“FemaleSpeech-16-8-mono-3secs.wav”);声音(AUDIOIN,FS)T =(0:尺寸(AUDIOIN,1)-1)/ FS;情节(T,AUDIOIN)xlabel('时间(s)')ylabel(“振幅”)标题(原始信号的)轴紧网格上
转换音频信号到频域。
赢=开方(汉恩(256,“周期”));ovrlp = 192;S = stft (audioIn'窗口',赢了,'OverlapLength'ovrlp,“中心”,假);
将音频信号加速1.4倍。指定用于创建频域表示的窗口和重叠长度。
α= 1.4;audioOut = stretchAudio(年代,α,'窗口',赢了,'OverlapLength', ovrlp);t = (0:size(audioOut,1)-1)/fs;情节(t, audioOut)包含('时间(s)')ylabel(“振幅”)标题(‘修正信号,TSM因子= 1.4’)轴紧网格上
将音频信号放慢0.8倍。指定用于创建频域表示的窗口和重叠长度。
α= 0.8;audioOut = stretchAudio(年代,α,'窗口',赢了,'OverlapLength', ovrlp);t = (0:size(audioOut,1)-1)/fs;情节(t, audioOut)包含('时间(s)')ylabel(“振幅”)标题(‘修正信号,TSM因子= 0.8’)轴紧网格上
默认的TSM方法(声码器)允许您额外应用锁相以提高对原始音频的保真度。
读取音频信号。听音频信号,并绘制它随时间推移。
[AUDIOIN,FS] = audioread(“SpeechDFT-16-8-mono-5secs.wav”);声音(AUDIOIN,FS)T =(0:尺寸(AUDIOIN,1)-1)/ FS;情节(T,AUDIOIN)xlabel('时间(s)')ylabel(“振幅”)标题(原始信号的)轴紧网格上
锁相给TSM增加了相当大的计算负载,而且并不总是必需的。默认情况下,锁相是禁用的。对输入音频信号施加1.8的加速因子。听音频信号,并绘制它随时间推移。
α= 1.8;拉伸音频(audioIn,alpha);processingTimeWithoutPhaseLocking = toc
processingTimeWithoutPhaseLocking = 0.0798
t = (0:size(audioOut,1)-1)/fs;情节(t, audioOut)包含('时间(s)')ylabel(“振幅”)标题('修改的信号,α-= 1.8,LockPhase =假')轴紧网格上
应用相同的1.8加速因子对输入音频信号,此时使相位锁定。听音频信号,并绘制它随时间推移。
抽动AUDIOOUT = stretchAudio(AUDIOIN,α,“LockPhase”,真正);processingTimeWithPhaseLocking = TOC
processingTimeWithPhaseLocking = 0.1154
t = (0:size(audioOut,1)-1)/fs;情节(t, audioOut)包含('时间(s)')ylabel(“振幅”)标题('修改的信号,α-= 1.8,LockPhase =真')轴紧网格上
波形相似性的重叠相加(WSOLA)TSM方法,可以指定样品的最大数量来搜索最佳信号对准。默认情况下,WSOLA delta是样本的分析窗口的数量减相邻分析窗口之间重叠的样本数目。增加WSOLA三角洲增加了计算量,但也可能增加保真度。
读取音频信号。听音频信号的前10秒。
[AUDIOIN,FS] = audioread(“rockguitar - 16 - 96立体声- 72 secs.flac”);声音(audioIn (1:10 * fs,:), fs)
应用0.75 TSM因子使用WSOLA方法对输入音频信号。听得到的音频信号的第一个10秒。
α= 0.75;抽动AUDIOOUT = stretchAudio(AUDIOIN,α,“方法”,“WSOLA”);processingTimeWithDefaultWSOLADelta = toc
processingTimeWithDefaultWSOLADelta = 19.4403
声音(AUDIOOUT(1:10 * fs的,:),FS)
应用0.75 TSM因子对输入音频信号,此时增加了WSOLA增量为1024听得到的音频信号的第一个10秒。
抽动AUDIOOUT = stretchAudio(AUDIOIN,α,“方法”,“WSOLA”,“WSOLADelta”,1024);processingTimeWithIncreasedWSOLADelta = TOC
processingTimeWithIncreasedWSOLADelta = 25.5306
声音(AUDIOOUT(1:10 * fs的,:),FS)
AUDIOIN
—输入信号输入信号,指定为列向量、矩阵或三维数组。函数如何解释AUDIOIN
取决于。的复杂性AUDIOIN
和价值方法
:
如果AUDIOIN
是真实的,AUDIOIN
被解释为一个时域信号。在这种情况下,AUDIOIN
必须是列向量或矩阵。列被解释为单独的通道。
此语法适用于以下情况方法
被设置为“声码器”
要么'WSOLA'
。
如果AUDIOIN
是复杂的,AUDIOIN
被解释为频域信号。在这种情况下,AUDIOIN
必须是一个l——- - - - - -米——- - - - - -N阵列,其中l是FFT长度,米是单个光谱的数量,和N为通道的数量。
这句法仅适用于当方法
被设置为“声码器”
。
数据类型:单
|双
复数的支持:万博1manbetx是
α
—TSM因素TSM因子,指定为正标量。
数据类型:单
|双
的可选逗号分隔对名称,值
参数。名称
参数名称和值
是对应的值。名称
必须出现在引号内。可以按任意顺序指定多个名称和值对参数Name1, Value1,…,的家
。
“窗口”,kbdwin (512)
'方法'
—方法用于时间尺度音频“声码器”
(默认)|'WSOLA'
方法用于时间尺度的音频,指定为逗号分隔对所组成的'方法'
和“声码器”
要么'WSOLA'
。集'方法'
至“声码器”
采用相位声码器的方法。集'方法'
至'WSOLA'
使用WSOLA方法。
如果'方法'
被设置为“声码器”
,AUDIOIN
可以是实数或复数。如果'方法'
被设置为'WSOLA'
,AUDIOIN
必须是真实的。
数据类型:单
|双
'窗口'
—窗口在时域应用开方(汉恩(1024, '周期性'))
(默认)|真正的矢量窗口在时域中应用,指定为逗号分隔的一对组成的'窗口'
一个实向量。向量中的元素个数必须在范围内[1,尺寸(
]。向量中元素的数量也必须大于AUDIOIN
, 1)OverlapLength
。
如果使用stretchAudio
与频域输入,您必须指定窗口
与用于转换的窗口相同AUDIOIN
到频域。
数据类型:单
|双
'OverlapLength'
—相邻窗口之间的重叠的样本数圆(0.75 * numel(窗口
))
(默认)|范围内的标量元素个数(窗口
)
)相邻窗口之间重叠的样本数,指定为逗号分隔对所组成的'OverlapLength'
和在范围[0的整数,元素个数(窗口)
)。
如果使用stretchAudio
与频域输入,您必须指定OverlapLength
作为相同的重叠长度用于变换AUDIOIN
到时间-频率表示。
数据类型:单
|双
“LockPhase”
—应用身份锁相假
(默认)|真正
“WSOLADelta”
—最大样本用于搜索最佳信号对齐元素个数(窗口
) - - -OverlapLength
(默认)|负的标量音频输出
- 时间尺度修正后的音频时标修正的音频,返回作为独立信道的一个列向量或矩阵。
WSOLA算法是一种求解TSM的时域方法[1][2]。WSOLA是重叠和添加(OLA)算法的扩展。在OLA算法中,时域信号的加窗时间为间隔时间η=元素个数(
。构造时间尺度修改的输出音频时,窗口被在间隔δ,其中δ≈η/α隔开。α是由指定的TSM因子窗口
) -OverlapLength
α
输入参数。
该OLA算法确实重现振幅谱的一个很好的工作,但可以介绍窗口之间的相位跳跃。该WSOLA算法试图平滑相位跳跃通过搜索WSOLADelta
对最小化相位跳跃的窗口的时间间隔进行抽样。该算法迭代地搜索最佳窗口,以便每个后续窗口都相对于之前选择的窗口进行选择。
如果WSOLADelta
被设置为0
,则算法简化为OLA。
德里杰、乔纳森和米纳德·穆勒。“回顾音乐信号的时间尺度修改。”应用科学。卷。6,第2期,2016。
[2] Driedger, Johnathan。《音乐音频信号的时间尺度修正算法》,硕士论文,萨尔兰大学,萨尔布吕肯,德国,2011。
您点击了对应于以下MATLAB命令的链接:
在MATLAB命令窗口中输入它运行的命令。Web浏览器不支持MATLAB的命令。万博1manbetx
您还可以选择从下面的列表中的网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。