import re import pandas as pd import wave import struct # 打开Excel文件 def add_zero_to_title(title): while len(title) < 3: title = "0" + title return title def get_data(file_path, column_list, cv_name): excel_data = pd.read_excel(file_path) column_names = excel_data.columns.tolist() title = column_names[0] excel_data[title] = excel_data[title].ffill() column_cv = column_names[2] print(column_cv) filter_value = cv_name filtered_data = excel_data[excel_data[column_cv].astype(str).str.contains(filter_value, na=False)] print(filtered_data) wav_title_list = [] # 逐行读取指定列的数据 for index, row in filtered_data.iterrows(): title = row[column_list[0]] title = re.findall(r"\d+\.?\d*", title) title = add_zero_to_title(title[0]) role = row[column_list[1]] num = row[column_list[2]] print(num) # wav_title = title[0] + '-' + role + '-' + cv_name + '-' + str(num)[:-2] wav_title = title + '-' + role + '-' + cv_name + '-' + str(num) wav_title_list.append(wav_title) print(wav_title_list) return wav_title_list def creat_wav_file(wav_title_list): # 设置音频参数 sample_width = 3 # 24位深度为3个字节 sample_rate = 44100 # 采样率为44100Hz num_channels = 1 # 单声道 # 创建WAV文件 for file_name in wav_title_list: with wave.open(r"G:\ready\绝天神印\{}.wav".format(file_name), 'w') as wav_file: # 设置音频参数 wav_file.setsampwidth(sample_width) wav_file.setframerate(sample_rate) wav_file.setnchannels(num_channels) # 生成音频数据 duration = 1 # 音频时长为10秒 num_samples = int(sample_rate * duration) for i in range(num_samples): # 生成一个24位整数的随机样本 sample = struct.pack('i', 0) # 这里设置为0,你可以根据需要生成不同的音频样本 wav_file.writeframes(sample) print('已成功创建{}文件'.format(file_name)) if __name__ == '__main__': file_path = r"C:\Users\Administrator\Downloads\aadd.xlsx" column_list = ['章节名称', '角色名', '台词量'] cv_name = '请叫我张钧' wav_title_list = get_data(file_path, column_list, cv_name) print(wav_title_list) creat_wav_file(wav_title_list)