时间拉伸音频
读入音频信号。听听音频信号并随时间绘制它。
[audioIn, fs] = audioread (“计数-16-44p1-mono-15secs.wav”);t =(0:大小(audioIn, 1) 1) / fs;情节(t, audioIn)包含(“时间(s)”) ylabel (“振幅”)标题(原始信号的)轴紧网格在
声音(AudioIn,FS)
用stretchAudio
应用1.5加速因子。听修改后的音频信号,并随着时间的推移绘制它。采样率保持不变,但信号持续时间有所缩短。
audioOut = stretchAudio (audioIn, 1.5);t =(0:大小(audioOut, 1) 1) / fs;plot(t,abusout)xlabel(“时间(s)”) ylabel (“振幅”)标题('修正信号,加速因子= 1.5')轴紧网格在
声音(audioOut fs)
减慢原始音频信号0.75因素。听修改后的音频信号,并随着时间的推移绘制它。采样率保持与原始音频相同,但信号的持续时间增加。
AudioOut = LigressAudio(AudioIn,0.75);t =(0:大小(audioOut, 1) 1) / fs;plot(t,abusout)xlabel(“时间(s)”) ylabel (“振幅”)标题('修正信号,加速因子= 0.75')轴紧网格在
声音(audioOut fs)
stretchAudio
金宝app当使用默认的声码器方法时,在频域音频上支持TSM。将TSM应用于频域音频使您能够针对多个TSM因素重用STFT计算。
读入音频信号。听听音频信号并随时间绘制它。
[audioIn, fs] = audioread ('femaleSpeech-16-8-Mono-3secs.wav');sound(audioIn,fs) t = (0:size(audioIn,1)-1)/fs;情节(t, audioIn)包含(“时间(s)”) ylabel (“振幅”)标题(原始信号的)轴紧网格在
将音频信号转换为频域。
赢得=√损害(256'定期'));OVRLP = 192;s = stft(Audioin,“窗口”,赢了,“OverlapLength”,OVRLP,'中心'、假);
将音频信号加速为1.4倍。指定用于创建频域表示的窗口和重叠长度。
alpha = 1.4;AudioOut = LigressAudio(S,Alpha,“窗口”,赢了,“OverlapLength”,ovrlp);sound(audioOut,fs) t = (0:size(audioOut,1)-1)/fs;plot(t,abusout)xlabel(“时间(s)”) ylabel (“振幅”)标题('修改信号,TSM因子= 1.4')轴紧网格在
减慢音频信号倍数为0.8。指定用于创建频域表示的窗口和重叠长度。
α= 0.8;AudioOut = LigressAudio(S,Alpha,“窗口”,赢了,“OverlapLength”,ovrlp);sound(audioOut,fs) t = (0:size(audioOut,1)-1)/fs;plot(t,abusout)xlabel(“时间(s)”) ylabel (“振幅”)标题(“修改信号,TSM因子= 0.8”)轴紧网格在
默认的TSM方法(声码器)允许您额外应用锁相以增加对原始音频的保真度。
读入音频信号。听听音频信号并随时间绘制它。
[audioIn, fs] = audioread (“SpeechDFT-16-8-mono-5secs.wav”);sound(audioIn,fs) t = (0:size(audioIn,1)-1)/fs;情节(t, audioIn)包含(“时间(s)”) ylabel (“振幅”)标题(原始信号的)轴紧网格在
锁相将非竞争计算负载添加到TSM,并不总是需要。默认情况下,禁用逐次锁定。将1.8的加速因子应用于输入音频信号。听听音频信号并随时间绘制它。
alpha = 1.8;TIC AUDIOOUT = LEGREDAUDIO(AudioIn,Alpha);ProcessingTimewithoutphaseLocking = TOC.
加工inewithoutphaseLocking = 0.0798.
sound(audioOut,fs) t = (0:size(audioOut,1)-1)/fs;plot(t,abusout)xlabel(“时间(s)”) ylabel (“振幅”)标题('Modified Signal, alpha = 1.8, LockPhase = false')轴紧网格在
对输入音频信号应用相同的1.8加速因子,这次启用锁相。听听音频信号并随时间绘制它。
tic audioOut = stretchAudio(audioIn,alpha,“锁定”,真正的);processingTimeWithPhaseLocking = toc
processingTimeWithPhaseLocking = 0.1154
sound(audioOut,fs) t = (0:size(audioOut,1)-1)/fs;plot(t,abusout)xlabel(“时间(s)”) ylabel (“振幅”)标题('Modified Signal, alpha = 1.8, LockPhase = true')轴紧网格在
波形相似度重叠增加(WSOLA) TSM方法使您能够指定搜索最佳信号对齐的最大样本数。默认情况下,WSOLA delta是分析窗口中的样本数量减去相邻分析窗口之间重叠的样本数量。增加WSOLA增量会增加计算负载,但也可能增加保真度。
读入音频信号。听音频信号的前10秒。
[audioIn, fs] = audioread (“rockguitar - 16 - 96立体声- 72 secs.flac”);声音(AudioIn(1:10 * FS,:),FS)
使用WSOLA方法对输入音频信号应用0.75的TSM因子。听产生的音频信号的前10秒。
α= 0.75;tic audioOut = stretchAudio(audioIn,alpha,“方法”那“wsola”);ProcessingTimewithDefaultWsoladelta = TOC.
processingTimeWithDefaultWSOLADelta = 19.4403
声音(audioOut (1:10 * fs,:), fs)
对输入音频信号应用0.75的TSM因子,这次将WSOLA增量增加到1024。听产生的音频信号的前10秒。
tic audioOut = stretchAudio(audioIn,alpha,“方法”那“wsola”那“WSOLADelta”, 1024);processingTimeWithIncreasedWSOLADelta = toc
processingTimeWithIncreasedWSOLADelta = 25.5306
声音(audioOut (1:10 * fs,:), fs)
audioIn
-输入信号输入信号,指定为列向量,矩阵或3-D阵列。该功能如何解释audioIn
取决于复杂性audioIn
的价值方法
:
如果audioIn
是真实的,audioIn
被解释为时域信号。在这种情况下,audioIn
必须是列向量或矩阵。列被解释为单独的通道。
此语法适用于什么时候方法
被设置为声码器的
或“wsola”
.
如果audioIn
很复杂,audioIn
被解释为频域信号。在这种情况下,audioIn
必须是AN.L.——- - - - - -M.——- - - - - -N.数组,L.为FFT长度,M.是单个光谱的数目,和N.是渠道的数量。
此语法仅适用于以下情况方法
被设置为声码器的
.
数据类型:单
|双
复数支持:金宝app是的
α
-TSM因子TSM因子,指定为正标量。
数据类型:单
|双
指定可选的逗号分离对名称,价值
参数。的名字
是参数名称和价值
为对应值。的名字
必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家
.
'窗口',kbdwin(512)
方法
-用于时间尺度音频的方法声码器的
(默认)|“wsola”
用于时间缩放音频的方法,指定为逗号分隔的对“方法”
和声码器的
或“wsola”
.集“方法”
来声码器的
使用相位声码器方法。集“方法”
来“wsola”
使用WSOLA方法。
如果“方法”
被设置为声码器的
那audioIn
可以是实的,也可以是复杂的。如果“方法”
被设置为“wsola”
那audioIn
必须是真实的。
数据类型:单
|双
窗口
-应用于时域的窗口√损害(1024年,“周期性”))
(默认)|真正的向量窗口应用于时域,指定为逗号分隔对,由“窗口”
和一个真正的矢量。矢量中的元素数量必须在范围内[1,大小(
].向量中的元素数也必须大于audioIn
, 1)OverlapLength
.
笔记
如果使用stretchAudio
对于频域输入,您必须指定窗口
与用于转换的窗口一样audioIn
到频域。
数据类型:单
|双
OverlapLength
-相邻窗口之间重叠的样本数量轮(0.75 *元素个数(窗口
))
(默认)|在[0]范围内的标量numel(窗口
的)
的)相邻窗口之间重叠的样本数,指定为由逗号分隔的对组成“OverlapLength”
和一个范围为[0,numel(窗口)
)。
笔记
如果使用stretchAudio
对于频域输入,您必须指定OverlapLength
与用于转换的相同重叠长度audioIn
转换为时频表示。
数据类型:单
|双
LockPhase
-应用身份锁相错误的
(默认)|真正的
WSOLADelta
-用于搜索最佳信号对齐的最大样本numel(窗口
) -OverlapLength
(默认)|非负标量audioOut
-时间尺度修改音频时间尺度修改音频,返回为独立通道的列向量或矩阵。
WSOLA算法是TSM的时间域方法[1][2].WSOLA是重叠和添加(OLA)算法的扩展。在OLA算法中,时间域信号在间隔η处窗口,其中η=元素个数(
.为了构造时间尺度的修正输出音频,窗口以δ为间隔,其中δ≈η/α。α是由式指定的TSM因子窗口
)- - -OverlapLength
α
输入参数。
OLA算法在重建幅值谱方面做得很好,但会在窗口之间引入相位跳变。WSOLA算法通过搜索来平滑相位跳变WSOLADelta
在η区间附近取样,以使相位跳变最小。该算法通过迭代搜索最佳窗口,使每个连续窗口相对于先前选择的窗口进行选择。
如果WSOLADelta
被设置为0.
,则算法简化为OLA。
[1]垂饰,约翰坦和梅纳德米勒。“审查音乐信号的时间尺度修改。”应用科学.2016年第6卷第2期。
[2]晾干器,约翰坦。“音乐音频信号的时间尺度修改算法”,硕士论文,萨尔兰大学,萨尔布吕肯,德国,2011年。
使用gpuArray
(并行计算工具箱)输入的stretchAudio
功能仅推荐用于计算能力7.0(“Volta”)或以上的GPU。其他硬件可能无法提供任何性能优势。要检查您的GPU计算能力,请参见ComputeCompability
在输出中gpuDevice
(并行计算工具箱)功能。有关更多信息,请参阅GPU支金宝app持情况(并行计算工具箱).
有关MATLAB中GPU使用的概述®, 看在GPU上运行matlab函数(并行计算工具箱).
次のMATLABコマンドに対応するリンクがクリックされました。
コマンドをMATLABコマンドウィンドウに入力して実行してください。WebブラウザーはMATLABコマンドをサポートしていません。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获得最佳网站性能。其他MathWorks国家网站未优化您所在地的访问。