import numpy as np from scipy.io import wavfile import pandas as pd # 打开Excel文件 def get_data(file_path, column_list, cv_name): excel_data = pd.read_excel(file_path) wav_title_list = [] # 逐行读取指定列的数据 for index, row in excel_data.iterrows(): title = row[column_list[0]] role = row[column_list[1]] num = row[column_list[2]] wav_title = title + '-' + role + '-' + cv_name + '-' + num wav_title_list.append(wav_title) return wav_title_list def creat_wav_file(wav_title_list, sample_rate, duration): # 生成一个时间数组,用于表示音频信号的时间 t = np.linspace(0, duration, int(sample_rate * duration), endpoint=False) # 生成一个440 Hz的正弦波 frequency = 440 # 440 Hz audio_signal = np.sin(2 * np.pi * frequency * t) # 将音频信号缩放到24位的范围[-2^23, 2^23-1] audio_signal = np.int32(audio_signal * 2**23) for i in wav_title_list: wavfile.write(r"C:\Users\Cori\Downloads\test\{}.wav".format(i), sample_rate, audio_signal) print('已成功创建{}文件'.format(i)) if __name__ == '__main__': file_path = r"C:\Users\Cori\Downloads\逍遥小医仙剧组.xlsx" column_list = ['章节名','角色名','台词数'] cv_name = input('请输入CV姓名') wav_title_list = get_data(file_path, column_list, cv_name) # 设置采样率为44100 Hz sample_rate = 44100 # 设置音频信号的时长(秒) duration = 5.0 creat_wav_file(wav_title_list, sample_rate, duration)