语料切分自动化

一、语料切分

语料录制要求:每句话之间间隔需要超过一秒,且尽量无高分贝杂音

运行自动化脚本

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)

五、质量保证

全部完成之后根据语料表再听一遍,若有少的可以补录,保证提交文件的质量

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值