在划分好的3个数据集train dev test 中生成spk2gender文件。
说话人信息存储于.metadata文件中,以下是操作步骤:
1.找出每个说话人中的其中一个.metadata文件的地址,保存到一个新的文件中
[问题]:这里采用的是找每个说话人中文件号是*1008.metadata的文件,但是问题是这样并不能找出所有的说话人,因为有的说话人中没有*1008.metadata文件,只能找到114个说话人(一共130个说话人),如果按其他的文件名,只能找到一百零几或者90+说话人,不知道还有没有更好的一下子找全说话人的方法。
2.单独把这114个说话人id存入一个新文件
3.把114个说话人性别信息存入新文件
① grep 命令用于在文件中执行关键词搜索,并显示匹配的效果。格式为 “grep [选项] [文件]”。 参数 -n :显示行号
②>会覆盖目标的原有内容。当文件存在时会先删除原文件,再重新创建文件,然后把内容写入该文件;否则直接创建文件。>>会在目标原有内容后追加内容。当文件存在时直接在文件末尾进行内容追加,不会删除原文件;否则直接创建文件。
4.删除text3.txt中的SEX
① cut命令可以从一个文本文件或者文本流中提取文本列。
cut -b 表示以字节分割
cut -c 表示以字符分割
☆ cut -f 表示以字段分割
cut -b -5 test1.txt 表示提取第一到第五列
cut -b 3 test1.txt 表示提取第三列
cut -b 4- test1.txt 表示提取第四列到最后一列
5.把text4.txt中的female male分别替换成 f m
6.说话人id text2.txt文件和性别信息文件gender1合并
7.此时spk2gender中只有114个说话人id和对应的性别信息,需要补全剩下的16个。
但是没有想出来好办法,只能手动的一个一个添加。首先将114个说话人按照数字从小到大排序
① sort -n 是按照纯数字进行排序
8.排序完成后,就可以找出缺少哪些说话人,手动一个一个添加。最后完成spk2gender
[知识点]:
文本编辑器打开文本出现^M是因为这个文件在windows平台下编辑过,我们知道在windows平台下,换行符是\r\n,而在linux下是\n,这多出来的\r被vim解释成了^M。