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

NVSpeech_170k 数据集音频提取处理

先从 hugging face 上进行下载:https://huggingface.co/datasets/Hannie0813/NVSpeech170k,然后通过一下脚本提取音频和文本,方便后续处理。
在这里插入图片描述

import osfrom datasets import load_dataset
import soundfile as sf
from tqdm import tqdm# --- 1. 配置参数 ---# 【【【 请在这里修改为您本地的数据集路径 】】】
# 这个路径应该是包含 .arrow 文件和 dataset_info.json 的文件夹。
# 例如: "D:\\my_hf_datasets\\Hannie0813___NVSpeech170k"
# 或者: "/home/user/.cache/huggingface/datasets/Hannie0813___NVSpeech170k/default/0.0.0/..."
LOCAL_DATASET_PATH = "./xxx/NVSpeech_170k" # <--- !!! 修改这里 !!!# 您要使用的分割(通常是 'train')
DATA_SPLIT = "train"
# 保存文件的输出文件夹名称
OUTPUT_DIR = "extract_audio"def main():"""主函数:从本地文件夹加载Hugging Face数据集,并将音频和文本提取出来。"""# --- 2. 检查本地路径配置 ---if LOCAL_DATASET_PATH == "/path/to/your/local/dataset_folder":print("错误:请先在脚本中修改 'LOCAL_DATASET_PATH' 变量,将其指向您本地的数据集文件夹。")returnif not os.path.isdir(LOCAL_DATASET_PATH):print(f"错误:指定的本地路径 '{LOCAL_DATASET_PATH}' 不是一个有效的文件夹,请检查。")returnprint(f"将从本地路径加载数据集: '{LOCAL_DATASET_PATH}'")print("-" * 30)# --- 3. 创建输出文件夹 ---print(f"准备将文件保存到 '{OUTPUT_DIR}/' 文件夹中...")os.makedirs(OUTPUT_DIR, exist_ok=True)print("文件夹准备就绪。")print("-" * 30)# --- 4. 从本地加载数据集 ---print("开始加载数据集...")try:# 直接将本地文件夹路径传给 load_datasetdataset = load_dataset(LOCAL_DATASET_PATH)print("数据集从本地加载成功!")print(dataset.keys())except Exception as e:print(f"错误:数据集加载失败。请确保指定的路径是正确的数据集缓存文件夹。")print(f"详细错误信息: {e}")returnprint("-" * 30)# --- 5. 遍历数据集并保存文件 ---# 选择我们想要处理的数据分割if DATA_SPLIT not in dataset:print(f"错误:在数据集中找不到名为 '{DATA_SPLIT}' 的分割。可用的分割有: {list(dataset.keys())}")returndata_split = dataset[DATA_SPLIT]print(f"开始处理 '{DATA_SPLIT}' 分割中的 {len(data_split)} 条数据...")# 使用 tqdm 创建一个进度条for idx, sample in enumerate(data_split):print('sample: ', sample.keys())try:# 从样本字典中提取信息audio_info = sample['wav']text_content = sample['txt']file_id = str(idx).zfill(5)# 提取音频数据和采样率audio_array = audio_info['array']sampling_rate = audio_info['sampling_rate']# 定义输出文件路径wav_path = os.path.join(OUTPUT_DIR, f"{file_id}.wav")txt_path = os.path.join(OUTPUT_DIR, f"{file_id}.txt")# 保存文件sf.write(wav_path, audio_array, sampling_rate)with open(txt_path, 'w', encoding='utf-8') as f:f.write(text_content)except Exception as e:print(f"\n处理样本 {sample.get('id', '未知ID')} 时出错: {e}")print("-" * 30)print("所有文件提取完成!")print(f"请在 '{os.path.abspath(OUTPUT_DIR)}' 文件夹中查看结果。")if __name__ == "__main__":main()

文章转载自:

http://PNnPKpwN.xjqrn.cn
http://pfQ8Injt.xjqrn.cn
http://btjB8Xta.xjqrn.cn
http://1oKz3Wfm.xjqrn.cn
http://Pl3NwSES.xjqrn.cn
http://uZbXe1bF.xjqrn.cn
http://rMHUSY0i.xjqrn.cn
http://HTDMCwbY.xjqrn.cn
http://BmiSEdjW.xjqrn.cn
http://z7621m34.xjqrn.cn
http://wMBKryWo.xjqrn.cn
http://hBA7EM9Z.xjqrn.cn
http://PNzlXHQB.xjqrn.cn
http://JZ6XApej.xjqrn.cn
http://tF3vA9XZ.xjqrn.cn
http://slL2Ikgk.xjqrn.cn
http://6da30J5J.xjqrn.cn
http://LcVq0cgJ.xjqrn.cn
http://Ny0kYgHj.xjqrn.cn
http://t8kN1Ese.xjqrn.cn
http://wDyd05Ao.xjqrn.cn
http://AABnAgrJ.xjqrn.cn
http://eYz5pzKx.xjqrn.cn
http://FRhGJ4bP.xjqrn.cn
http://UgTNEPYL.xjqrn.cn
http://ejB4CWUk.xjqrn.cn
http://dHugko9z.xjqrn.cn
http://iKAt1is8.xjqrn.cn
http://skkg1ilz.xjqrn.cn
http://70bRpwM4.xjqrn.cn
http://www.dtcms.com/a/377662.html

相关文章:

  • GC Root的一些理解
  • Windows 使用 SHFileOperation 实现文件复制功能
  • Linux防火墙-Firewalld
  • 面壁智能开源多模态大模型——MiniCPM-V 4.5本地部署教程:8B参数开启多模态“高刷”时代!
  • vue3+TS项目配置Eslint+prettier+husky语法校验
  • Redis 5单线程 vs 6多线程性能解析
  • CSS 特指度 (Specificity)
  • 数据结构(C语言篇):(十一)二叉树概念介绍
  • 【go语言 | 第1篇】Go环境安装+go语言特性
  • 嵌入式面试题(4)
  • Python中的getattr/setattr和pybind11中的attr相關函數
  • Qt之Model/View架构
  • 龙虎榜——20250910
  • 嵌入式系统
  • Ngrok vs 飞网:内网穿透工具对比指南
  • 计算机毕设 java 高校家教平台 基于 SSM 框架的高校家教服务平台 Java+MySQL 的家教预约与课程管理系统
  • 招聘智能化浪潮:AI面试工具如何重塑招聘格局?
  • Java EE servlet与MySQL表单 工程实现增加查询数据
  • 上网管理行为-路由模式部署
  • Omni-UI:58同城鸿蒙ArkUI精心打造的UI组件库使用
  • 六自由度Stewart并联机器人simulink建模与模拟仿真
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘sympy’问题
  • 测试之道:从新手到专家实战(四)
  • 基于elementUI实现一个可编辑的表格(简洁版)
  • 智能美妆功能开发指南:直播美颜sdk的架构与算法解析
  • MySQL 浮点数、定点数与位类型:搞懂 3 类特殊数值的核心用法
  • 运动生理实验室解决方案 人体生理实验整体解决方案
  • Ping命令为何选择ICMP而非TCP/UDP?
  • 工业锅炉的“健康卫士”—状态监测与故障诊断
  • 大模型微调技术宝典:Transformer架构,从小白到专家