@ audio/pitch-pyin (英语)

pYIN——概率主义的YIN(Mauch & Dixon,2014年)
npm install @audio/pitch-pyin
import pyin, { track, notes } from '@audio/pitch-pyin'
Mauch & Dixon, 2014 (英语). 概率YIN——以比他(2,18)之前加权的多阈值运行YIN,产生对候选投子的分布,而不是单一硬取. 比YIN更强壮 在模糊的框上.
let result = pyin(samples, { fs: 44100 })
// → { freq: 440.1, clarity: 0.92, candidates: [{ freq: 440.1, prob: 0.85 }, ...] }
| 参数 | 默认 | |
|---|---|---|
fs | 44100 | 样本率(赫兹) |
minFreq | 50 | 最小可探测频率(Hz) |
maxFreq | 2000 | 最大可探测频率 (Hz) |
与其他原子不同,单帧结果也带有 candidates ——在被测出期间的完整后期,按概率排序,每后期 { freq, prob } 与 prob 改为1名候选人. clarity 是(被宣布的)候选人集所捕获的总概率质量,而不是一个一峰的信心.
在一系列框架上, track 运行 pYIN 的第二阶段和 notes 将结果分为:
let { times, f0, voiced, prob } = track(samples, { fs: 44100 }) // frame i at i·hopSize/fs, f0 0 where unvoiced
let events = notes(samples, { fs: 44100 }) // → [{ time, duration, freq, midi, clarity }, ...]
let write = notes({ fs: 44100 }) // streaming, track too
write(block) // → the notes finished so far
write() // → the rest
| 参数 | 默认 | |
|---|---|---|
frameSize | 2048 在44.1千赫时 | 框架(样本):2的最短功率,其YIN窗口有一段时期 minFreq |
hopSize | 256 在44.1千赫时 | 跳(样本), 5.8毫秒 |
lag | 4096 | 决定每个框架的框架:流最多在输入后如此之多 |
minDuration | 0.1 | notes: 保存最短音符(s) |
candidates | 阳哥 | 第一阶段:HMM的另一个观测模型,例如: @audio/neural-pitch是因为 |
track Viterbi-decodes pYIN的发音为HMM. 国家是0.1-Semitone bines from minFreq 改为 maxFreq,发音或未发音;发音动能为每秒35.92八分之多,开出有0.01概率的开关(librosa.pyin的默认). 声音状态占用了候选人的一半概率(Vamp插件) yinTrust),它保持了未发声路径的开通,因此音符之间的跳跃不会被八分之一的去掉. 一旦每条维特比路径都同意, 或者,如果它们没有在其中达到 lag 框,沿着最佳路径(固定的lag解码,作为 pYIN Vamp 插件):内存在任意长度上保持被约束,并有短的流 lag 决定每个框架在其输入后有一个固定的间隔。 反对librosa.pyin 1.0:差异函数为YIN自己的(librosa0-expends the frame,它拉出低音速尖锐),候选人在一个宾加分中,以及 f0 是解码的垃圾桶内的候选人,而不是垃圾桶中心.
notes 是托尼的注解模型,带有pYIN Vamp插件的参数和输出:攻击,平稳和无声状态,每半音为3发. Vibrato和一勺入个音符 留在里面; 同样的音符再次启动一个新的音符, 电平在两个框内上升了1/0.7倍; 一个快滑翔机在它的尾端与音符相接, 通过音符缓慢的一步. freq 是音符框的中位点, clarity 他们表示的概率.
candidates 替换第1阶段,并保留HMM和音符模型。 它已经 candidates.js签名 : (frameSize, fs, minFreq, maxFreq) → run时 run(frame) 填充后返回候选人数 run.freq, (中文(简体) ), run.prob (每个候选人的投出概率最多1个)和 run.rms (音符读取水平); run.frameSize 财务报告和审定财务报表 run.lead 设定一个框架有多少样本,其中有多少样本在时间之前。 没有它,输出是相同的,bit for bit.
使用时 : 模糊的内容——有气息的相声,有吵闹的录音,或者当你需要一个投出后音进行下游HMM跟踪时. 语音或独奏乐器的美乐德:用发音平滑的f0(track页:1notes) (中文(简体) ).
不为: 多声音频:每帧一发.
参考: 毛奇和狄克逊, "pYIN:使用概率阈值分布的基本频率估计器", ICASSP 2014 (英语). 毛奇等编;, "电脑辅助的Melody Note 使用托尼软件转录:准确性和效率",TENOR 2015 (英语).
部分 @ audio/ pitch (英语) ——投出家族伞. 此 README 由伞形文件生成 .
麻省理工学院 音频