一、语料切分
语料录制要求:每句话之间间隔需要超过一秒,且尽量无高分贝杂音
运行自动化脚本
from pydub import AudioSegment
from pydub.silence import split_on_silence
def split_audio_by_volume(audio_path, output_path, min_silence_len=500, silence_thresh=-45): #原始路径 输出路径 最小静音段 静音分贝
audio = AudioSegment.from_file(audio_path, format="wav")
audio = audio.set_channels(1) # 将音频转为单声道
print("123")
# 利用静默部分进行分割
segments = split_on_silence(audio, min_silence_len=min_silence_len, silence_thresh=silence_thresh)
for i, segment in enumerate(segments):
filename = f"{output_path}/
{i+1:03d}
.wav"
#导出文件名
segment.export(filename, format="wav")
if
name
== "__main__":
audio_path = "
C:\\Users\\
"
# 语料
完整路径
output_path = "
C:\\Users\\
"
# 输出
路径
split_audio_by_volume(audio_path, output_path)
二、筛查数据
步骤一完成之后的数据不一定是刚好符合要求的,需要通过二分法加看波形图的方式完成数据筛选,筛选完成的数据应该是刚好满足所需数量并且无多切或两句间隔较短的语料被切分到一个语料中;
三、文件名全部按顺序重新命名
文件经过一二两步之后大概率不会是刚好文件名完全对的上的,在数据筛查之后,需要批量更改文件名
运行脚本
import os
def rename_files_with_prefix(input_folder, output_folder, prefix, start_number=1):
# 确保输出文件夹存在
os.makedirs(output_folder, exist_ok=True)
# 遍历输入文件夹中的文件
files = os.listdir(input_folder)
files.sort() # 按当前文件排列顺序排序
for i, file_name in enumerate(files):
file_ext = os.path.splitext(file_name)[1]
new_name = f"{prefix}{start_number + i:03d}{file_ext}"
old_path = os.path.join(input_folder, file_name)
new_path = os.path.join(output_folder, new_name)
os.rename(old_path, new_path)
print(f"重命名文件: {file_name} 为 {new_name}")
设置输入文件夹、输出文件夹、前缀和起始数字
input_folder = '
C:\\Users\\
' #文件所在位置
output_folder = '
C:\\Users\\
'
#文件输出地址
prefix = '
'
#文件统一前缀
start_number =
167
#后续号码起始序号
rename_files_with_prefix(input_folder, output_folder, prefix, start_number)
四、按项目需求添加前后静音段
from pydub import AudioSegment
import os
def add_audio_to_files(input_folder, output_folder, add_audio_path):
# 加载要添加的音频文件
add_audio = AudioSegment.from_file(add_audio_path)
# 确保输出文件夹存在
os.makedirs(output_folder, exist_ok=True)
# 遍历输入文件夹中的音频文件
for file_name in os.listdir(input_folder):
if file_name.endswith(".wav"): # 仅处理.wav格式的音频文件
input_audio_path = os.path.join(input_folder, file_name)
# 加载原始音频文件
original_audio = AudioSegment.from_file(input_audio_path)
# 合并前后的音频
final_audio = add_audio + original_audio + add_audio
# 构建输出文件路径
output_audio_path = os.path.join(output_folder, f"{file_name}")
# 保存处理后的音频
final_audio.export(output_audio_path, format="wav")
print(f"已处理文件: {file_name}")
#设置输入文件夹、输出文件夹和要添加的音频路径
input_folder = '
C:\\Users\\
'
#所有文件的位置
output_folder = '
C:\\Users\\
'
#输出路径
add_audio_path = '
C:\\Users\\
'
#需要添加的音频路径
#调用函数
add_audio_to_files(input_folder, output_folder, add_audio_path)
五、质量保证
全部完成之后根据语料表再听一遍,若有少的可以补录,保证提交文件的质量