当前位置: 首页 > news >正文

wsj0数据集原始文件.wv1.wv2转换成wav文件

文章目录

      • 准备
      • 一、获取WSJO数据集
      • 二、安装sph2pipe
      • 三、转换代码
      • 四、结果展示

​ 最近做语音分离实验需要用到wsj0-2mix数据集,但是从李宏毅语音分离教程里面获取的wsj0-2mix只有一部分。从网上获取到了完整的WSJO数据集后,由于原始的语音文件后缀是wv1或者wv2,创建wsj0-2mix需要wav文件,所以需要通过工具进行转换。网上的教程使用后只能生成一堆空文件夹,无法生成转换后的wav文件。因此,在成功解决这个问题后,把采用的方法分享一下,按照下列步骤能完美进行转换。

准备

  • 平台:Windows
  • 工具:
    • python
    • sph2pipe
  • 数据集:WSJO

一、获取WSJO数据集

官网可以申请该数据集,想要的可以私信或者发加q3280461976

二、安装sph2pipe

大家按照之前网上的方法只能生成一堆空文件夹就是因为没有安装sph2pipe。按照下列步骤操作

  1. 下载sph2pipe(https://www.ldc.upenn.edu/language-resources/tools/sphere-conversion-tools),选择版本2.5,2.1在Windows下已经无法运行

image-20231129160431454

  1. 配置环境变量,如下将sph2pipe.exe的路径加入你电脑的系统变量Path里面,

    image-20231129161056053

  2. 找到你下载的文件,可以看到里面有一个exe文件

image-20231129160558692

  1. 验证sph2pipe能否成功运行,首先运行cmd或者powershell,保证当前目录里面含有sph2pipe.exe文件,输入sph2pipe,有如下提示就可以了

image-20231129160803574

  1. 下面就可以使用sph2pipe进行类型转换

三、转换代码

下面就是转换代码,详细说一下你需要改哪些地方,特别是第三点,非常重要!!!

  1. root_dir:改成你下载的wsj0的根目录文件,代码里面有例子
  2. my_path:改成你想要保存转换后wav文件存储的路径
  3. cmd = "E: \sph2pipe_v2.5.tar \sph2pipe_v2.5\sph2pipe -f wav " + speech_dir + " " + target_dir:把E: \sph2pipe_v2.5.tar \sph2pipe_v2.5改成你sph2pipe.exe存在的路径,注意代码中是“\ \”(双斜杠),
"""
# example:
# 11-1.1/wsj0/si_tr_s/01t/01to030v.wv1 is converted to wav and
# stored in YOUR_PATH/wsj0/si_tr_s/01t/01to030v.wav
"""
import os# 你下载的wsj0的根目录 例子:E:\\csr_1_comp_LDC93S6A\\csr_1_comp,
root_dir = ""# the disc number
disc_dir = []
for list_disc in os.listdir(root_dir):if list_disc not in ["text", "11-13.1"]: #doc file and 11-13.1 file do not contain .wv files# the data dir for each discdisc_dir.append(os.path.join(root_dir, list_disc, "wsj0"))# 转换后的文件想要保存的位置
my_path = ""
if not os.path.exists(my_path):os.mkdir(my_path)
# # the sub_data dir for each disc
for i, list_sub_data in enumerate(disc_dir):for sub_data_dir in os.listdir(list_sub_data):if (not sub_data_dir.startswith("si")) and (not sub_data_dir.startswith("sd")):continues_dir = os.path.join(my_path, sub_data_dir)if not os.path.exists(s_dir):os.mkdir(s_dir)if sub_data_dir[0][0] == 's':datatype_dir = os.path.join(list_sub_data, sub_data_dir)for list_spk in os.listdir(datatype_dir):spk_dir = os.path.join(s_dir, list_spk)spk_dir_abs = os.path.join(datatype_dir, list_spk)if not os.path.exists(spk_dir):os.mkdir(spk_dir)for wv_file in os.listdir(spk_dir_abs):if (not wv_file.endswith('.wv1')) and (not wv_file.endswith('.wv2')):continuespeech_dir = os.path.join(spk_dir_abs, wv_file)if wv_file.split('.')[1] == "wv1":target_name = wv_file.split(sep='.')[0] + '.wav'elif wv_file.split('.')[1] == 'wv2':target_name = wv_file.split(sep='.')[0] + '_1.wav'target_dir = spk_dir + '\\' + target_name# 一定要注意!!! sph2pipe -f wav前面的路径必须包含上面讲到的sph2pipe.exe,你只需要根据你sph2pipe.exe存放的位置修改这段路径:E:\\sph2pipe_v2.5.tar\\sph2pipe_v2.5cmd = "E:\\sph2pipe_v2.5.tar\\sph2pipe_v2.5\\sph2pipe -f wav " + speech_dir + " " + target_diros.system(cmd)

四、结果展示

  1. 编译器窗口:如果你没有按照sph2pipe,终端输出的就是一堆红色乱码,然后生成的文件夹都是空的

    image-20231129162213776

  2. 生成文件,比如我打开第一个sd_dt_05,完美转换

image-20231129162310664image-20231129162508838

image-20231129162528077
http://www.lryc.cn/news/247781.html

相关文章:

  • Flask Session 登录认证模块
  • 【运维】hive 高可用详解: Hive MetaStore HA、hive server HA原理详解;hive高可用实现
  • C#开发的OpenRA游戏之属性SelectionDecorations(13)
  • 接手了一个外包开发的项目,我感觉我的头快要裂开了~
  • git常规使用方法,常规命令
  • 【JavaScript】3.3 JavaScript工具和库
  • 开发基于 ChatGPT 分析热点事件并生成文章的网站应用【热点问天】把百度等热点用chatGPT来对热点事件分析海量发文章 开发步骤 多种方式获取利润
  • 龙迅LT8668SXC适用于TPYE-C/DP/HDMI转EDP/VBO同时环出一路HDMI/DP,支持分辨率缩放功能。
  • 跳板机原理
  • 璞华大数据产品入选中国信通院“铸基计划”
  • 1146. 新的开始,prim算法,超级原点
  • HTTP常见响应码
  • 物联网边缘计算是什么?如何实现物联网边缘计算?
  • 带着GPT-4V(ision)上路,自动驾驶新探索
  • 19. Python 数据处理之 Pandas
  • 【计网 可靠数据传输RDT】 中科大笔记 (十 一)
  • ubuntu下训练自己的yolov5数据集
  • ROC及曲线面积汇总学习
  • LeetCode Hot100 35.搜索插入位置
  • Android frameworks 开发总结之八
  • Cortex-M与RISC-V区别
  • YashanDB入选2023年世界互联网大会领先科技奖成果集《科技之魅》
  • C语言基础程序设计题
  • Spring Boot实现图片上传和展示
  • 大数据-之LibrA数据库系统告警处理(ALM-37015 Gaussdb进程可用文件句柄资源不足)
  • 大一学编程怎么学?刚接触编程怎么学习,有没有中文编程开发语言工具?
  • GoWeb学习-第二天
  • 04-鸿蒙4.0学习之样式装饰器相关
  • C# 线程(1)
  • 冒泡排序以及改进方案