"真正重要的東西,只用眼睛是看不見的。"
"只要蘊藏著想成為真物的意志,偽物就比真物還要來得真實。"
Emiya Engine 是一个用来丰富音频频谱的脚本。可以将频谱变得好看那么一点。
RC Version 5
更新历史
RC 5
调整自动优化特性的实现
RC 4
尝试在 CopyBand 模式中加入自动优化特性
RC 3
替换了执行过慢的实现,运行速度提升至 10 倍以上
AkkoMode 加入了动态范围保护特性
RC 2
加入了参数自动加载/保存特性
加入了截止/调制频率的优化建议
提高了系数精度
RC 1
加入了参数辅助调整选项
尝试在 CopyBand 模式下保护动态范围
Alpha.3
推翻了之前的所有代码的完全重构,处理结果类似 DSEE HX
这一版本质是高通滤波器 + 混频器
将高通滤波后的信号分离为打击乐及弦乐,然后增益后叠加在原始信号上
丢掉了自造的 FFT 轮子,改用库实现的 STFT
因此不存在爆音和咔哒声,也不再需要额外多倍重采样,速度极大提升
这一版本参数调节极其重要,需要参照结果反复调整参数
正确调整参数的处理样本完全不增加爆音及咔哒声,加上 EQ 能完全抹平处理痕迹
Alpha.1 Rev.1
这一版中加入了 AkkoMode
这一模式原理极其简单,就是给原始信号采样点分别乘以极小的随机数
可以视作信号在有微小热噪声的线路走了一趟
处理后无爆音及咔哒声,但在低电平音频上能听出背景噪声
消除背景噪声就必须暴露处理痕迹
Alpha.1 Rev.0
该版本为 Alpha.0 的重构改进,主要工作是改写为多进程执行
为消除频谱图上可见的断层,加入了整数倍时域重采样机制
事实上重采样带来的运算增加远超多进程带来的提升,所以...
以及因为多进程,处理需要占用更大的内存,性能消耗巨大
爆音和咔哒声依旧存在,但已大幅减少,处理痕迹依旧能看出来
Alpha.0 Rev.3
这算是 Emiya Engine 的第一个阶段成果,目标的最小实现
简单说原理就是矩形窗暴力 FFT,移频,乘以随机数,叠加,IFFT
大部分的代码是为了处理超大数组拼接速度缓慢的问题
处理后的音频有大量爆音及咔哒声,低电平音频容易看出处理痕迹
半自动操作
CopyBand 自动优化(版本 >= RC4):
自动优化特性目的是去除 Audition 中进行繁琐的 FFT 滤波器后处理步骤。
设计上仅考虑了处理后过大的高频增益,使用时尽量使输出频谱亮一点。
简单操作流程:
辅助手动操作
CopyBand 辅助调整(版本 >= RC 1):
CopyBand 模式需要设置六个参数,上手困难,
因此从 RC 1
版本开始加入了辅助调节手段。
首先勾选 优化建议
和 样本输出模式
并将谐波增益倍率设定为 0。然后执行一次。
执行完成后,将提示窗中的 建议增益
填写到冲击增益倍率,再执行一次。
以此反复,当提示 建议维持冲击增益
时,即辅助调节冲击增益完成。
若需要更好品质,可尝试将谐波增益倍率改为 1,然后再执行一次
加入谐波后,提示窗中的 建议增益
失去参考价值,
此时可以参考提示的 当前增益
进行调节,
同样的,当提示 建议维持冲击增益
时,即调节完成。
若需要更好的频谱「品相」,可以参考下步骤手动调整。
完全手动操作
为了方便使用,特地做了个 GUI 界面,
但实际上还是挺难用的,所以还是说一下。
工具: Spek(仅频谱观察用),Audition(频谱观察/频率分析/后期处理用)
首先需要分析音乐类型,对于以下类型不建议使用 AkkoMode:
- 电子合成纯音乐,背景乐器只有一两样的
- 人声清唱带一个伴奏乐器
- 其他频谱图中最高频率不到 18kHz 的音乐
AkkoMode 适用于大部分时候音量都很大的流行乐(比如 JPOP),
处理时应选用 Apple iTunes 购买的 AAC 格式音频,常见的频谱长这样:
因为参数只有俩,多试几次就知道,此处就不展开说了。
CopyBand 完全手动调整步骤:
配置之前观察频谱。
以某网站下载的音乐为例,以下是其频谱图及频率分析图:
从两张图中可以明显看出频率在 17kHz 不到的地方戛然而止,
如果目标是生成 48kHz 文件,则需要补齐 24-17=7kHz 的部分。
而 17-7=10kHz,故 HPF 截止频率应设定在 10kHz 以下,
而调制频率则在 HPF 截止频率上加上 7k。
本例中设定为 9k 及 16k。
这首歌背景音乐以打击乐为主,因此能量集中在冲击部分,
调参数时,首先将谐波增益设置为 0,可以避免参数过多干扰测试。
冲击增益可以从 5 开始测试,勾上测试模式,启动输出,
检查输出文件频率分析结果:
很明显,在 17-21kHz 的地方本应该是比 17kHz 以下的部分“矮”一些的。
(高频衰减更大,所以高频部分通常增益应低于低频)
因此,根据观察结果,将冲击增益调为 2.5(折半试错),再重新跑一次。
(此时要在其他软件中关闭文件,否则会发生错误)
调整后的频率分析结果变成了这样:
此时已经很接近理想的样子了,因为还要加入谐波的部分(前边设定成了 0)
故再将冲击增益降低 0.5,同时给谐波增益改为 1.0 并再次执行。
结果变成了这样:
看起来不错,直接取消测试模式生成最终结果。
生成最终结果时可能会很卡,请不要担心并耐心等待,进度条将滚动四次(两声道音频)。
接着检查频谱,输出如下:
此时是不是有点失望了,很明显的衔接痕迹对不对。
没关系,这时可以打开 Audition 效果中的 FFT 滤波器,
接着拿起刚才的频率分析结果图,照着图调整 FFT 滤波器,比如这样:
应用后,频率分析结果变成了这样:
而频谱中的衔接痕迹已经不明显了:
其他提示
例如以下原始文件不到 16kHz:
拉升到 48kHz 采样需要的频率片段至少为 24-16=8kHz,
而拉升到 96kHz 采样则需要 48-16=32kHz。
而原始音频中都没有 32kHz 的容量,
因此在最终拉升到 96kHz 之前需要重复至少三次操作。
在这一过程中,最大频率由 16 最终变为 48Hz。
由于事实上 20kHz 以上的听不见,所以你做得再多也无妨(笑)。
例如上边的例子被拉升到 192kHz 采样率,宛如天籁之声:
请不要使用这个脚本制造 'HiRes'
逗玄学家玩