主要内容

延星

时拉音频

描述

例子

音频输出=拉伸(奥地策α通过TSM因子在输入音频上应用时间尺度修改(TSM)α

例子

音频输出=拉伸(奥地策α名称,价值使用一个或多个指定选项名称,价值对论点。

例子

全部收缩

读取音频信号。听听音频信号并随时间绘制它。

[AudioIn,FS] = audioread(“计数-16-44p1-mono-15secs.wav”);t =(0:size(audioin,1)-1)/ fs;plot(t,audioin)xlabel('时间'')ylabel('振幅') 标题('原始信号')轴紧的网格

图包含轴。具有标题原始信号的轴包含类型线的对象。

声音(AudioIn,FS)

延星申请1.5加速因子。收听修改后的音频信号并随时间绘制它。采样率保持不变,但信号的持续时间降低。

AudioOut = LigressAudio(AudioIn,1.5);t =(0:大小(频声,1)-1)/ fs;plot(t,abusout)xlabel('时间'')ylabel('振幅') 标题('修改信号,加速因子= 1.5')轴紧的网格

图包含轴。具有标题修改信号的轴,加速因子= 1.5包含类型线的对象。

声音(频道,FS)

减慢原始音频信号0.75因素。收听修改后的音频信号并随时间绘制它。采样率保持与原始音频相同,但信号的持续时间增加了。

Auditout = LigressAudio(AudioIn,0.75);t =(0:大小(频声,1)-1)/ fs;plot(t,abusout)xlabel('时间'')ylabel('振幅') 标题('修改信号,加速因子= 0.75')轴紧的网格

图包含轴。具有标题修改信号的轴,加速因子= 0.75包含类型线的对象。

声音(频道,FS)

延星金宝app使用默认声码器方法时,在频域音频上支持TSM。将TSM应用于频域音频使您可以重复使用多个TSM因子的STFT计算。

读取音频信号。听听音频信号并随时间绘制它。

[AudioIn,FS] = audioread('FemaleSpeech-16-8-Mono-3secs.wav');声音(AudioIn,FS)T =(0:Size(AudioIn,1)-1)/ FS;plot(t,audioin)xlabel('时间'')ylabel('振幅') 标题('原始信号')轴紧的网格

图包含轴。具有标题原始信号的轴包含类型线的对象。

将音频信号转换为频域。

win = sqrt(hann(256,'定期'));OVRLP = 192;s = stft(isainin,'窗户',赢,'overlaplencth',OVRLP,'中心',错误的);

将音频信号加速为1.4倍。指定用于创建频域表示的窗口和重叠长度。

alpha = 1.4;Auditout = LigressAudio(S,Alpha,'窗户',赢,'overlaplencth',ovrlp);声音(呼啸声,FS)T =(0:尺寸(发射机,1)-1)/ fs;plot(t,abusout)xlabel('时间'')ylabel('振幅') 标题('修改信号,TSM因子= 1.4')轴紧的网格

图包含轴。具有标题修改信号的轴,TSM因子= 1.4包含类型线的对象。

减慢音频信号倍数为0.8。指定用于创建频域表示的窗口和重叠长度。

alpha = 0.8;Auditout = LigressAudio(S,Alpha,'窗户',赢,'overlaplencth',ovrlp);声音(呼啸声,FS)T =(0:尺寸(发射机,1)-1)/ fs;plot(t,abusout)xlabel('时间'')ylabel('振幅') 标题('修改信号,TSM因子= 0.8')轴紧的网格

图包含轴。具有标题修改信号,TSM因子= 0.8的轴包含类型线的对象。

默认TSM方法(VOCODER)使您可以另外应用锁相以将保真度提高到原始音频。

读取音频信号。听听音频信号并随时间绘制它。

[AudioIn,FS] = audioread(“speemdft-16-8-mono-5secs.wav”);声音(AudioIn,FS)T =(0:Size(AudioIn,1)-1)/ FS;plot(t,audioin)xlabel('时间'')ylabel('振幅') 标题('原始信号')轴紧的网格

锁相向TSM添加了非竞争计算负载,并不总是需要。默认情况下,禁用锁相。将1.8的加速因子应用于输入音频信号。听听音频信号并随时间绘制它。

alpha = 1.8;TIC AUDIOOUT = LAJRIGAUDIO(AudioIn,Alpha);processingTimewithoutphaseLocking = TOC.
加工节省inewithoutphaseLocking = 0.0798.
声音(呼啸声,FS)T =(0:尺寸(发射机,1)-1)/ fs;plot(t,abusout)xlabel('时间'')ylabel('振幅') 标题(“修改信号,alpha = 1.8,锁定} = false')轴紧的网格

将相同的1.8加速因子应用于输入音频信号,此时启动锁相。听听音频信号并随时间绘制它。

Tic Auditout = LigressAudio(AudioIn,Alpha,“锁定”,真的);processingtimeewithphaseLocking = TOC.
ProcessingTimewithPhaseLocking = 0.1154.
声音(呼啸声,FS)T =(0:尺寸(发射机,1)-1)/ fs;plot(t,abusout)xlabel('时间'')ylabel('振幅') 标题('修改信号,alpha = 1.8,锁定phase = true')轴紧的网格

波形相似度重叠 - 添加(WSOLA)TSM方法使您可以指定用于搜索最佳信号对齐的最大样本数。默认情况下,WSOLA Delta是分析窗口中的样本数减去相邻分析窗口之间重叠的样本数量。增加WSOLA Delta增加了计算负荷,但也可能增加保真度。

读取音频信号。听听音频信号的前10秒。

[AudioIn,FS] = audioread('Rockguitar-16-96-Stereo-72secs.flac');声音(AudioIn(1:10 * FS,:),FS)

使用WSOLA方法将TSM系数0.75施加到输入音频信号。收听由此产生的音频信号的前10秒。

alpha = 0.75;Tic Auditout = LigressAudio(AudioIn,Alpha,“方法”“WSOLA”);ProcessingTimewithDefaultWsoladelta = TOC.
ProcessingTimewithDefaultWsoladelta = 19.4403
声音(频道(1:10 * FS,:),FS)

将TSM系数施加0.75到输入音频信号,这次将WSOLA增量增加到1024.收听所产生的音频信号的前10秒。

Tic Auditout = LigressAudio(AudioIn,Alpha,“方法”“WSOLA”“Wsoladelta”,1024);ProcessingTimewithIncreaseWsoladelta = TOC.
ProcessionTimewithincreasceficwsoladelta = 25.5306
声音(频道(1:10 * FS,:),FS)

输入参数

全部收缩

输入信号,指定为列向量,矩阵或3-D阵列。该功能如何解释奥地策取决于复杂性奥地策和价值方法

  • 如果奥地策是真实的,奥地策被解释为时域信号。在这种情况下,奥地策必须是列向量或矩阵。列被解释为单独的通道。

    此语法适用于什么时候方法设定为'vocoder'或者'WSOLA'

  • 如果奥地策很复杂,奥地策被解释为频域信号。在这种情况下,奥地策必须是AN.L.-经过-m-经过-N阵列,其中L.是fft长度,m是单独的频谱数量,还有N是渠道的数量。

    此语法仅适用于什么时候方法设定为'vocoder'

数据类型:单身的|双倍的
复数支持:金宝app是的

TSM因子,指定为正标量。

数据类型:单身的|双倍的

名称值对参数

指定可选的逗号分离对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'窗口',kbdwin(512)

用于时间缩放音频的方法,指定为包括的逗号分隔对'方法''vocoder'或者'WSOLA'。放'方法''vocoder'使用相位声码器方法。放'方法''WSOLA'使用WSOLA方法。

如果'方法'设定为'vocoder'奥地策可以是真实的或复杂的。如果'方法'设定为'WSOLA'奥地策必须是真实的。

数据类型:单身的|双倍的

在时域中应用的窗口,指定为逗号分隔对组成'窗户'和一个真正的矢量。向量中的元素数必须在范围[1,尺寸(奥地策1)]。矢量中的元素数量也必须大于overtaplenth

笔记

如果使用延星使用频域输入,必须指定窗户与用于转换的相同窗口奥地策到频域。

数据类型:单身的|双倍的

在相邻窗口之间重叠的样本数,指定为包括的逗号分隔对'overlaplencth'并且范围内的整数[0,numel(窗口))。

笔记

如果使用延星使用频域输入,必须指定overtaplenth与用于转换的相同重叠长度奥地策到时频表示。

数据类型:单身的|双倍的

应用身份锁相,指定为包括的逗号分隔对'锁骨'错误的或者真的

依赖性

启用此名称值对参数,设置方法'vocoder'

数据类型:逻辑

用于搜索最佳信号对齐的最大样本数,指定为逗号分隔对'wsoladelta'和一个非负标量。

依赖性

启用此名称值对参数,设置方法'WSOLA'

数据类型:单身的|双倍的

输出参数

全部收缩

时间尺度修改音频,作为独立通道的列向量或矩阵。

算法

全部收缩

阶段声码器

相位声码器算法是TSM的频域方法[1][2]。相位声码器算法的基本步骤是:

  1. 算法Windows间隔η时的时域信号η= numel(窗户) -overtaplenth。然后将窗口转换为频域。

  2. 为了保留水平(跨越时间)相位相干性,算法将每个垃圾箱视为通过累积其瞬时频率的估计来计算的阶段的独立正弦曲线。

  3. 为了保持垂直(横跨单独的频谱)相位相干性,算法将垃圾箱组组的相位提前锁定到局部峰的阶段前进。这一步仅适用于锁链设定为真的

  4. 该算法将修改的频谱图返回到时域,Windows以δ的间隔间隔开,其中Δ≈0m。α是由此指定的加速因子α输入参数。

WSOLA.

WSOLA算法是TSM的时域方法[1][2]。WSOLA是重叠和添加(OLA)算法的扩展。在OLA算法中,时间域信号在间隔η处窗口,其中η= numel(窗户) -overtaplenth。为了构造时间尺度修改的输出音频,窗口以间隔Δ间隔开,其中Δ≈0m/α。α是由此指定的TSM因子α输入参数。

OLA算法进行重新创建幅度谱但可以在Windows之间引入阶段跳跃的良好工作。WSOLA算法尝试通过搜索来平滑相位跳转Wsoladelta.围绕η间隔的样本,用于最小化相位跳跃的窗口。算法迭代搜索最佳窗口,以便相对于先前选择的窗口选择每个连续窗口。

如果Wsoladelta.设定为0.然后,算法减少到OLA。

参考

[1]垂饰,约翰坦和梅纳德米尔尔。“审查音乐信号的时间尺度修改。”应用科学。卷。6,第2期,2016年。

[2]晾干器,约翰坦。“音乐音频信号的时间尺度修改算法”,硕士论文,萨尔兰大学,萨尔布吕肯,德国,2011年。

扩展能力

C / C ++代码生成
使用MATLAB®Coder™生成C和C ++代码。

在R2019B中介绍