首先要知道,我们需要得到一份带有标注的、同一个人的语音切片数据。
有问题可以加讨论群869029039
第一步,在网上寻找你需要的音频数据
这里以甜药的B站教学视频为例,因为音质好,杂音少,训练起来非常好
https://space.bilibili.com/106017013
找到【甜药教学】的视频,复制网址。用DownKyi下载音频
https://github.com/leiurayer/downkyi
GitHub有下载链接和教程
选中解析并下载
因为我们需要转化成wav格式进行处理,所以推荐一个格式转换的东西,非常简单好用
https://github.com/Tichau/FileConverter
下载安装好之后直接右键下载的视频,转化就可以了
循环几遍,你就能得到一个人几十甚至上百分钟的音频数据了
新建文件夹
import os
# 文件夹和文件的路径
base_dir = "./"
directories = ["input_dir", "output_dir", "denoised_dir"]
# 创建文件夹
for directory in directories:
dir_path = os.path.join(base_dir, directory)
if not os.path.exists(dir_path):
os.makedirs(dir_path)
print(f"文件夹 '{dir_path}' 已创建。")
else:
print(f"文件夹 '{dir_path}' 已存在。")
文件结构如下
./
├── input_dir/
├── output_dir/
└── denoised_dir/
我们把这些文件放在input_dir文件夹里,准备下一步
第二步,降噪
装环境
pip install -U modelscope
用达摩院的降噪模型,我听了之后感觉效果还不错,在这段视频里把背景的枪声,角色音效等消除得挺干净的。
代码如下,替换一下
import os
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
# 初始化降噪模型
ans_pipeline = pipeline(
Tasks.acoustic_noise_suppression,
model='damo/speech_frcrn_ans_cirm_16k'
)
# 设置原始音频文件夹和输出文件夹的路径
input_folder = "./input