借助该VST3插件,可以实现将DAW的音频信号通过HTTP协议发送到音频处理程序中,用以实现C/S结构的音频信号处理系统
举例:
结合AI猫雷项目,可以将猫雷变声器集成到你的DAW中
在实时模式进行了一些尝试,目前实时模式主要有以下问题以及解决方案:
1.过短的音频切片使得模型输出声音很奇怪,此处通过在每个前片前额外加入上一句音频,使得算法模型输入长度增加,模型能或得到足够长的信息,不会生成过于奇怪的声音,并在VST端对两个音频做首尾交叉淡化降低音频切片衔接的突兀感,但是目前仍然有些许爆音,在纯Python端做交叉淡化效果挺好,但VST里有瑕疵,估计我写的代码有问题,欢迎大佬来优化
建议的参数设置
最长音频切片时长:0.25s
交叉淡化时长: 0.25s
使用JUCE框架重新开发,提高了在不同DAW里的兼容性,例如AU、StudioOne、Reaper
!!!注意:更换了配置文件的路径!!!,新路径为C:\Program Files\Common Files\VST3\NetProcessJUCEVersion\netProcessConfig.json
在release页面下载最新的压缩包,解压后会有3个文件netProcessConfig.json
,NetProcessJUCEVersion.vst3
,samplerate.dll
,将这些文件放在如下目录下C:\Program Files\Common Files\VST3\NetProcessJUCEVersion
,!!!!注意路径一定要对,不然可能DAW扫描不到VST插件
按需要修改netProcessConfig.json
中的内容,其中每个字段的定义如下
字段 | 默认值 | 说明 |
---|---|---|
configVersion | "2.0" | 配置文件版本号(勿改) |
fSampleVolumeWorkActiveVal | 0.05 | 静音检测音量阈值(范围0-1),低于这个阈值被认为是静音 |
bEnableSOVITSPreResample | false | 启用对SOVITS输入音频提前重采样,把重采样流程放到VST插件中,如果DAW里处理速度比后端快,可以开启 |
iSOVITSModelInputSamplerate | 22050 | SOVITS输入音频提前重采样频率 |
bEnableHUBERTPreResample | false | 启用对HUBERT输入音频提前重采样,,把重采样流程放到VST插件中,如果DAW里处理速度比后端快,可以开启,如果后端不支持的话,这里用false |
iHUBERTInputSampleRate | 16000 | HUBERT输入音频提前重采样频率 |
roleList | 多角色配置列表,至少放一个,不然插件报错打不开 |
多角色配置字段说明,每个说话人一个配置字典
字段 | 默认值 | 说明 |
---|---|---|
apiUrl | "http://127.0.0.1:6844" | 后端服务地址,也可以启用多个不同的模型,然后在这里配置不同的接口地址 |
speakId | "0" | 说话人ID |
name | "XXXX" | 说话人名称(只支持字母或者数字),会显示在插件UI界面便于实时切换说话人 |
插件安装完毕后会在StudioOne里按如下显示
插件的界面如下
选项 | 默认值 | 说明 |
---|---|---|
实时模式 | 关 | 实时模式(可用,有略微咔哒声,有明显延迟),关闭后为逐句模式 |
调试日志 | 关 | Debug开关(保持关闭就行) |
最长音频切片时长 | 0.8s | 最长音频切片的长度,单位是秒 |
变调 | 14 | 变调(这个参数直接传给后端) |
最长静音时长 | 0.17s | 逐句模式下有效,单位是秒,当0.17秒内没有声音的时候,认为句子结束,开始调用模型 |
交叉淡化时长 | 0 | (实验性参数,保持为0就好) |
切换角色 | role | 角色切换,切换是实时生效的,角色配置在netProcessConfig.json的roleList字段中 |
算法耗时 | 0ms | 每次调用算法的耗时,单位毫秒 |
丢弃数据时长 | 0ms | (实时模式下因为网络波动而丢弃的数据长度) |
studioOne里工程的采样率应设置为44.1Khz
Studio One版本:Windows 5.5.1.85792
插件版本:v2.0
AU版本:Windows 22.1.1.23
插件版本:v2.0
Reaper版本:Windows v6.45
插件版本:v2.0
QQ:896919430
Email:[email protected]
Bilibili:串串香火锅