opensmile读取wav出错:bogus wave/riff header or file in wrong format解决办法

错误描述

读取demo中的wav示例的时候没有问题,但是在执行SMILExtract提取自己准备的wav文件时却出现bogus wave/riff header or file in wrong format的错误提示,(maybe you are trying to read a 32-bit wave file which is not yet supported (new header type…)?) 等提示错误信息出现,如下图
opensmile读取wav出错:bogus wave/riff header or file in wrong format解决办法_第1张图片


解决办法

  • 准备工具:

    • matlab
    • wav文件
  • 步骤:

    • 打开matlab,执行y=wavread(‘xxx.wav’);
    • 然后执行 wavwrite(y,’xxx.wav’);
    • opensmile重新运行SMILExtract命令

WAV格式简介

  • Wav文件以RIFF(Resource Interchange File Format)格式为标准,每个Wav文件的头四个字节就是“RIFF”
  • Wav文件由若干个Chunk块组成
    按照在文件中出现的位置,包括
    • RIFF WAVE Chunk
    • Format Chunk
    • Fact Chunk (可选)
    • Data Chunk
  • Chunk块
    每个Chunk有各自的ID,位于 Chunk最开始位置,且均为4字节
    紧跟ID后面是本Chunk的Size, 以4个字节表示,为除去ID和Size 所占字节数后本Chunk剩下的 其他实际数据所占的字节数
    然后是本Chunk包含的实际数据

  • 格式介绍
    opensmile读取wav出错:bogus wave/riff header or file in wrong format解决办法_第2张图片

你可能感兴趣的:(杂)