擅长:python、mysql、java
<p>免责声明:我对python不是很了解。在</p>
<p>我在谷歌上搜索波浪.py找到了以下链接:<a href="http://www.opensource.apple.com/source/python/python-3/python/Lib/wave.py" rel="noreferrer">http://www.opensource.apple.com/source/python/python-3/python/Lib/wave.py</a></p>
<p>如果您查找名为<code>_read_fmt_chunk</code>的函数,您将看到错误消息的来源。简而言之,wave模块只支持wave_-FORMAT_-PCM。格式<code>65534</code>是由Microsoft定义的名为<code>WAVE_FORMAT_EXTENSIBLE</code>的格式,用于多通道波形文件。这很少见。在</p>
<p>我想你有几个选择:</p>
<ol>
<li>找到一种新的方法来转换不产生<code>WAVE_FORMAT_EXTENSIBLE</code>的文件</li>
<li>修改<code>wave.py</code>的源代码以支持<code>WAVE_FORMAT_EXTENSIBLE</code>-假设<code>SubFormat</code>字段是PCM或IEEE浮点数,这不是什么大问题。从这个角度来看,它只是增加了标题的大小。如果它是另一个<code>SubFormat</code>,那么您甚至需要在进入PCM之前运行一个适当的解码器。在</li>
<li>使用另一个工具将<code>WAVE_FORMAT_EXTENSIBLE</code>.wav文件转换为其他文件。<code>sox</code>可能能够处理这个问题。在</li>
</ol>
<p>关于你问题的第二部分。从你的问题中不清楚你是如何确定文件的持续时间的。但是如果你对频道的数量做了不正确的假设,那可能会让你失望。在</p>