@ audio/tune-曲线

沿着投出曲线重定向一个声音,它自己的光滑循环重排(TD-PSOLA):成形物和所保存的相容物(Melodyne类)
npm install @audio/tune-curve
import tuneCurve from '@audio/tune-curve'
tuneCurve(voice, { semitones: 3, fs: 44100 }) // a constant shift
tuneCurve(voice, { semitones: { t: [0, 1, 1.5], v: [0, 2, 0] }, fs }) // a drawn curve: seconds → semitones
tuneCurve(voice, { semitones: t => 0.5 * Math.sin(2 * Math.PI * 5 * t), fs }) // vibrato
tuneCurve(voice, { semitones: 2, f0: { t: times, v: hz }, fs }) // cycles found on a pitch track given
let write = tuneCurve({ semitones: curve, fs }) // streaming: write(chunk) → output `write.latency` samples behind
let out = write(chunk), tail = write()
一次的周期被一扇双开的窗户绕住其标志,并按曲线要求的间隔铺设(Moulnes & Charpentier, 语音交流 9, 1990),每个叶片取出源的那一面而不超过相距的时间,如普拉特的PSOLA有:两个叶片相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相 脉搏形状,声道的响起在上面,呼吸和焦躁保持声音的自发性,所以成形者停留在原地而无物被再合成. 未发声相声相声相声相声相相声相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相 如果比例为1,周期设于原地,则输出为输入.
重排时段,周期比QQ( ratio - 1) 输入时提前运行, 当比例返回到 1 时, 某一时段的某个部分就会被留下: 接下来是什么( 输入, 交叉时返回) 将会遇到远处, 最糟糕时半个时段, 两个取消 。 在比分回回1之前的100多米,他们从10多米的高度回到了自己的分数上(大约一个声音以最快的速度移动出几个半音), 日本航天局 111, 2002),从这里输入回取样品. 在8个录音上(VoiceBank, Spoken Wikipedia),一个曲线0.05至5个半音或上下下相接3个半音,它的收尾中行:在回放为0后超过10ms后,与输入相差2.2分B,高于输入本身的关卡(中间为32分;最差为5.2分),现在任何一个都无.
循环作为音频流:f0 by pYIN(Mauch & Dixon, ICASSP 2014;); @audio/pitch-pyin在频道的平均值上,每5.8 ms的帧,它的维特比路径在最后一帧读取的0.15 s之内决定(在0.1 s之内,讲座的帧已经取出每条八分线下维特比的距离);每个周期的标记,在表示的运行的第一个周期和下一个周期中,第一个在最响亮的样本中,移动到一个波形比最佳的时期(正常的关联,在样本之间细化);从跑的第一个标记,每次最多可达40 ms的周期,而每个周期与一个关联度超过7.7(Praat对一个脉冲经过一个表示的间隔的边缘的测试)相匹配,从不进入一个表示的标记:pYIN在它的框架大部分被表达后发现一个声音,每一次运行的前20 ms左右在剩余时间被移动时停留在它的投放地(6.5%的框架Praat在8个录音上表示,现在0.9%). YIN在持续运行语音表达的阈值(35:其自有的15只持有一个不滑翔在帧内的声音),为语音取出一个强烈的第二口琴的时期(/i/,/u/,/ʊ/,每个帧上都有他们的第一种形式):脉冲和脉冲之间的波纹被切为两个循环,每个循环跳过或反复地将两个善良的相并起,声音的相相相相相跳在那里. 一次讲座降低了半音,有2.4个这种接合的秒,现在没有;Vocadito(158 s)的8名以上的独唱歌手取而代之的PYIN路径(离线)取而代之的是30毫秒的相框,其周期(减去YIN最不正常化的差别)从+2 simtons的0.8多从103多降至36多;在+2 simtons的183到48;在+5的278到76。 低调的投出会使其周期比长更相去甚远,并留下它们之间的空隙:叶片被拓宽以填充在周期中的任何一面所取出,而八分之一,相隔两段,使输入的自相回放. 循环在分数位置通过一个被Kaiser-windowed sinc来读取,因此输出在新投出时是周期性的,而不是被整个样本所焦躁.
options | 默认 | |
|---|---|---|
semitones | 0 | 数字、 流起秒函数或曲线 { t, v } (各点之间,平地过其端口) |
ratio | 转换为频率比, 形式相同 | |
fs | 44100 | 赫兹(sampleRate 也读取) |
minFreq | 60 | 赫兹,一个循环中的最低投出量 |
maxFreq | 1000 | 赫兹,最高 |
rmin | 0.25 | 曲线的最小比值: 溪流的耐久度覆盖它 |
f0 | 声音的发声 找到它的循环 而不是pYIN 的: 一个曲线 { t, v } (秒 = Hz, 0 未发声,在表示的点之间以对数频率直取) 或秒函数 |
频道在一集循环上被重新调整,在他们的平面上被找到,所以一个立体声保持了它的形象. 流出输出等于样本的批量输出样本,但输入是被块化的:回跑有多远是它自己的音频的意思(以周期的设定程度为准,反之,以其他方式被块化的唱出,相去甚远可达全相隔的.76分). 溪流流开来 write.latency 它输入的后方样本: 0.36 s 以44.1 kHz为单位,声音下至60 Hz将半音降低,其中多数是0.15 s pYIN的决定等待,40 ms的一跑被找回.
计量
与目标投出地(Rosenberg脉冲通过Peterson & Barney's /a/ formants,两个投出地相同)上合成的声音再合成,从−7到+12分音以120和220赫兹:
| 关于真相的口琴,中位数(最大) | 口琴之间 | 周期形状对事实 | |
|---|---|---|---|
tune-curve | 3.2分贝(5.7) | -95分贝 | 0.92 (中文(简体) ) |
@audio/shift-formant | 4.3分贝(6.1) | -80分贝 | 0.81 (中文(简体) ) |
| 相位锁定的vocoder | 10.9分贝(34.5) | -64分贝 | 0.60 (韩语) |
在一次唱出录相(autio-lena)和一次语音样本上,长期频谱超过所发音的帧会停留在−4至+7个半个子(vocoder:±3.7至±12.6个dB)输入的±0.5至±1.7分贝内,投出在输入比例的中位数0.7至2.2分贝内.
使用时 : 单声道,口语或唱歌:发音校正,入声道,所画出发音曲线.
不为: 和弦,相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接.
部分 @ audio/ tun曲调家庭伞.
麻省理工学院 音频