wav_list = glob.glob("C:\ResNet\TIMIT\TRAIN\*\*\*.wav") print(f'找到{len(wav_list)}个训练音频') ''' C:\ResNet\TIMIT\TRAIN\DR8\MTCS0\SA2_.wav DR8代表的是方言区 MTCS0 说话人的名称 ''' f = open("TIMIT-trainlist.txt", 'w') speaker_name_list=[] for wav in wav_list: wav_split = wav.split('\\') d_r = wav_split[-3] speaker_name = wav_split[-2] speaker_name_list.append(speaker_name) wav_name = wav_split[-1] text = f"{speaker_name} {d_r}\{speaker_name}\{wav_name}\n" f.write(text) else: f.close() len_a=len(set(speaker_name_list)) print("说话人数目:",len_a)
时间: 2024-04-25 14:27:50 浏览: 28
这段代码是在使用TIMIT数据集创建一份训练集清单文件(TIMIT-trainlist.txt),并统计训练集中的说话人数量。具体流程如下:
1. 使用glob模块匹配TIMIT数据集TRAIN文件夹中所有的.wav文件,并统计数量。
2. 遍历所有.wav文件,将它们的路径按照如下格式存入TIMIT-trainlist.txt文件中:说话人ID 说话人音频路径
3. 统计TIMIT-trainlist.txt文件中出现的说话人数量。
4. 打印出说话人数量。
通过这份训练集清单文件,可以训练说话人识别模型。在训练过程中,可以使用每个说话人的音频来训练模型,以提高模型的泛化能力。
相关问题
wav_list = glob.glob("C:\ResNet\TIMIT\TEST\*\*\*.wav") print(f'找到{len(wav_list)}个训练音频') speaker_name_list = [] all_wav_list = [] speaker_wav_dict = dict({}) enroll_list = [] for wav in wav_list: wav_split = wav.split('\\') d_r = wav_split[-3] speaker_name = wav_split[-2] wav_name = wav_split[-1] speaker_name_list.append(speaker_name) wav_path = f"{d_r}\{speaker_name}\{wav_name}" all_wav_list.append(wav_path) if speaker_name in speaker_wav_dict: speaker_wav_dict[speaker_name].append(wav_path) else: speaker_wav_dict[speaker_name] = [wav_path] enroll_list.append(wav_path) SpeakerNameList = set(speaker_name_list) f = open("TIMIT-testlist.txt", 'w') num_pairs = 4000 for i in range(num_pairs): if i % 2 == 0: # label==1 wav1 = random.sample(enroll_list, 1)[0] id1 = wav1.split('\\')[-2] wav2 = random.sample(speaker_wav_dict[id1], 1)[0] label = 1 else: # label==0 wav1 = random.sample(enroll_list, 1)[0] id1 = wav1.split('\\')[-2] wav2 = random.sample(all_wav_list, 1)[0] id2 = wav2.split('-')[0] if id1 == id2: continue label = 0 f.write("{} .\{} .\{}\n".format(label, wav1, wav2)) f.close()
这段代码是在使用TIMIT数据集创建一份测试集清单文件(TIMIT-testlist.txt),其中包含4000对音频(wav1, wav2)以及它们的标签(label)。具体流程如下:
1. 使用glob模块匹配TIMIT数据集TEST文件夹中所有的.wav文件,并统计数量。
2. 遍历所有.wav文件,将它们的路径存入all_wav_list列表中,并将每个speaker的第一条音频加入enroll_list列表中。
3. 构建speaker_wav_dict字典,键为说话人ID,值为该说话人的所有音频路径列表。
4. 遍历num_pairs次,每次随机选择两个音频wav1和wav2,并给它们标上0或1的标签。
5. 如果标签为1,则从enroll_list列表中随机选择一个音频作为wav1,再从该说话人的所有音频中随机选择一个作为wav2。
6. 如果标签为0,则从enroll_list列表中随机选择一个音频作为wav1,再从all_wav_list列表中随机选择一个作为wav2。要求wav2所属的说话人与wav1不同。
7. 将每对wav1和wav2以及它们的标签写入TIMIT-testlist.txt文件中。
这份测试集清单文件可以用于测试说话人识别模型的准确率。
csv_list = glob.glob('C:\Users\小杜羽\Desktop\python作业\all.cvscata_3934_csv.zip')语法修正
由于在Python中,反斜杠(\)被视为转义字符,因此在Windows系统中需要使用双反斜杠(\\)或者单斜杠(/)进行转义。因此,将路径中的反斜杠改为双反斜杠或者单斜杠即可。例如:
```python
csv_list = glob.glob('C:/Users/小杜羽/Desktop/python作业/all.cvscata_3934_csv.zip')
```
或者
```python
csv_list = glob.glob('C:\\Users\\小杜羽\\Desktop\\python作业\\all.cvscata_3934_csv.zip')
```
这样就可以正确地搜索指定路径下的文件了。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)