Time-stretch音频
读入音频信号。听音频信号,随着时间的推移把它画出来。
[audioIn, fs] = audioread (“Counting-16-44p1-mono-15secs.wav”);t =(0:大小(audioIn, 1) 1) / fs;情节(t, audioIn)包含(“时间(s)”) ylabel (“振幅”)头衔(“原始信号”)轴心牢固的网格在
声音(audioIn fs)
使用斯特拉乔迪奥
应用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)
斯特拉乔迪奥
金宝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倍。指定用于创建频域表示的窗口和重叠长度。
α= 1.4;audioOut = stretchAudio(年代,α,“窗口”赢“OverlapLength”, ovrlp);sound(audioOut,fs) t = (0:size(audioOut,1)-1)/fs;情节(t, audioOut)包含(“时间(s)”) ylabel (“振幅”)头衔('修正信号,TSM因子= 1.4')轴心牢固的网格在
将音频信号减慢0.8倍。指定用于创建频域表示的窗口和重叠长度。
α=0.8;audioOut=stretchAudio(S,alpha,“窗口”赢“OverlapLength”, ovrlp);sound(audioOut,fs) t = (0:size(audioOut,1)-1)/fs;情节(t, audioOut)包含(“时间(s)”) ylabel (“振幅”)头衔('修正信号,TSM因子= 0.8')轴心牢固的网格在
默认的TSM方法(声码器)允许您另外应用锁相以提高原始音频的保真度。
读入音频信号。听音频信号,随着时间的推移把它画出来。
[audioIn, fs] = audioread (“SpeechDFT-16-8-mono-5秒波形”);sound(audioIn,fs) t = (0:size(audioIn,1)-1)/fs;情节(t, audioIn)包含(“时间(s)”) ylabel (“振幅”)头衔(“原始信号”)轴心牢固的网格在
锁相为TSM增加了一个重要的计算负载,而且并不总是必需的。缺省情况下,禁止锁相。对输入音频信号应用1.8的加速因子。听音频信号,随着时间的推移把它画出来。
α= 1.8;tic audioOut = stretchAudio(audioIn,alpha);processingTimeWithoutPhaseLocking = toc
processingTimeWithoutPhaseLocking = 0.0798
sound(audioOut,fs) t = (0:size(audioOut,1)-1)/fs;情节(t, audioOut)包含(“时间(s)”) ylabel (“振幅”)头衔('Modified Signal, alpha = 1.8, LockPhase = false')轴心牢固的网格在
对输入音频信号应用相同的1.8加速系数,这一次启用锁相。收听音频信号,并随时间进行绘图。
tic audioOut = stretchAudio(audioIn,alpha,“LockPhase”,真正的);processingTimeWithPhaseLocking = toc
processingTimeWithPhaseLocking = 0.1154
sound(audioOut,fs) t = (0:size(audioOut,1)-1)/fs;情节(t, audioOut)包含(“时间(s)”) ylabel (“振幅”)头衔('修改信号,α=1.8,锁定相位=真')轴心牢固的网格在
波形相似度重叠增加(WSOLA) TSM方法使您能够指定搜索最佳信号对齐的最大样本数。默认情况下,WSOLA delta是分析窗口中的样本数量减去相邻分析窗口之间重叠的样本数量。增加WSOLA增量会增加计算负载,但也可能增加保真度。
读入音频信号。听音频信号的前10秒。
[audioIn, fs] = audioread (“摇滚吉他-16-96-立体声-72秒flac”);声音(audioIn (1:10 * fs,:), fs)
使用WSOLA方法对输入音频信号应用0.75的TSM因子。听产生的音频信号的前10秒。
alpha=0.75;tic audioOut=stretchAudio(音频输入,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)
音频素
- - - - - -输入信号输入信号,指定为列向量、矩阵或三维数组。函数如何解释音频素
取决于复杂性音频素
以及方法
:
如果音频素
是真实的,音频素
被解释为时域信号。在这种情况下,音频素
必须是列向量或矩阵。列被解释为单个通道。
此语法适用于以下情况方法
设置为声码器的
或“维索拉”
.
如果音频素
是复杂的,音频素
被解释为频域信号。在这种情况下,音频素
必须是一个l-借-米-借-N数组,l为FFT长度,米是单个光谱的数目,和N为通道的数量。
此语法仅适用于以下情况方法
设置为声码器的
.
数据类型:单
|双重的
复数的支持:金宝app是的
α
- - - - - -TSM因素TSM因子,指定为正标量。
数据类型:单
|双重的
指定可选的逗号分隔的对名称,值
论据。的名字
参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数名称1,值1,…,名称,值
.
“窗口”,kbdwin (512)
方法
- - - - - -用于对音频进行时间缩放的方法声码器的
(默认)|“维索拉”
方法用于时间尺度音频,指定为逗号分隔对组成“方法”
和声码器的
或“维索拉”
设置“方法”
来声码器的
使用相位声码器方法。设置“方法”
来“维索拉”
使用WSOLA方法。
如果“方法”
设置为声码器的
,音频素
可以是实的,也可以是复杂的。如果“方法”
设置为“维索拉”
,音频素
必须是真实的。
数据类型:单
|双重的
重叠长度
- - - - - -相邻窗口之间重叠的样本数量轮(0.75 *元素个数(窗口
))
(默认)|范围为[0]的标量元素个数(窗口
)
)相邻窗口之间重叠的样本数,指定为逗号分隔对,由“OverlapLength”
和一个范围为[0,元素个数(窗口)
).
请注意
如果使用斯特拉乔迪奥
对于频域输入,您必须指定重叠长度
因为相同的重叠长度用于变换音频素
以时间-频率表示。
数据类型:单
|双重的
LockPhase
- - - - - -应用身份锁相假
(默认)|真正的
WSOLADelta
- - - - - -最大样本用于搜索最佳信号对准元素个数(窗口
)-重叠长度
(默认)|负的标量audioOut
-时间尺度修改音频时间刻度修改音频,作为独立通道的列向量或矩阵返回。
WSOLA算法是一种时域的TSM方法[1][2].WSOLA是对OLA (overlap and add)算法的扩展。在OLA算法中,时域信号在η区间加窗,其中η=努美尔(
. 为了构建时间刻度修改后的输出音频,窗口间隔δ,其中δ≈ η/α. α是指定的TSM系数窗口
) -重叠长度
α
输入参数。
OLA算法在重建幅值谱方面做得很好,但会在窗口之间引入相位跳变。WSOLA算法通过搜索来平滑相位跳变WSOLADelta
在η间隔周围采样一个最小化相位跳变的窗口。该算法迭代搜索最佳窗口,以便相对于先前选择的窗口选择每个连续窗口。
如果WSOLADelta
设置为0
,则算法简化为OLA。
[1] Driedger, Johnathan, Meinard Müller。音乐信号的时间尺度修正综述应用科学.2016年第6卷第2期。
[2] Driedger, Johnathan。“音乐音频信号的时间尺度修正算法”,硕士论文,萨尔兰德大学,Saarbrücken,德国,2011。
使用gpuArray
(并行计算工具箱)输入的斯特拉乔迪奥
功能仅推荐用于计算能力7.0(“Volta”)或以上的GPU。其他硬件可能无法提供任何性能优势。要检查您的GPU计算能力,请参见可计算性
的输出gpuDevice
(并行计算工具箱)函数。有关更多信息,请参见GPU版金宝app本支持(并行计算工具箱).
有关在MATLAB中使用GPU的概述®,请参阅在GPU上运行MATLAB函数(并行计算工具箱).
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。