You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Hugging Face可迭代数据集中获取音频文件?

处理MLCommons/peoples_speech数据集的音频保存问题

方法一:直接利用已加载的音频数组保存为WAV

流式加载数据集时,每个样本的audio字段已经包含了解码后的音频numpy数组(array)和采样率(sampling_rate),无需额外下载文件,直接用音频处理库保存即可。推荐使用soundfile库,操作简单高效:

  1. 先安装依赖:
pip install soundfile numpy
  1. 保存音频的代码:
import soundfile as sf

# 遍历流式取到的10个样本
for sample in dataset:
    # 提取音频数据和采样率
    audio_data = sample['audio']['array']
    sample_rate = sample['audio']['sampling_rate']
    # 用样本id作为文件名,避免冲突
    wav_filename = f"{sample['id']}.wav"
    
    # 保存为WAV格式
    sf.write(wav_filename, audio_data, sample_rate)
    print(f"音频已保存至: {wav_filename}")

方法二:通过path下载原始FLAC文件并转换为WAV

如果需要保留原始FLAC格式文件,再转换为WAV,可以借助数据集的文件系统获取下载链接:

  1. 安装额外依赖(如果需要):
pip install requests soundfile
  1. 下载并转换的代码:
import requests
import soundfile as sf

# 获取数据集的文件系统对象
fs = dataset.dataset_info.download_manager.filesystem

for sample in dataset:
    flac_file_path = sample['audio']['path']
    # 检查文件是否存在于数据集存储中
    if fs.exists(flac_file_path):
        # 获取文件的实际下载URL
        file_url = fs.get_url(flac_file_path)
        # 下载FLAC文件
        flac_filename = f"{sample['id']}.flac"
        with open(flac_filename, 'wb') as f:
            f.write(requests.get(file_url).content)
        print(f"原始FLAC文件已下载至: {flac_filename}")
        
        # 转换为WAV格式
        audio_data, sample_rate = sf.read(flac_filename)
        wav_filename = f"{sample['id']}.wav"
        sf.write(wav_filename, audio_data, sample_rate)
        print(f"已转换为WAV文件至: {wav_filename}")

注意事项

  • 方法一效率更高,因为流式加载时音频数据已经被解码到内存中,无需额外的网络请求。
  • 两种方法生成的WAV文件都可以直接交给音频编码器处理。

内容的提问来源于stack exchange,提问作者Formal_this

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 10:05:23