首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将音频文件读取为PCM WAV、AIFF/AIFF-C或Native FLAC

无法将音频文件读取为PCM WAV、AIFF/AIFF-C或Native FLAC
EN

Stack Overflow用户
提问于 2020-03-02 15:42:09
回答 1查看 1.8K关注 0票数 2

我正在使用.wav格式的javascript录制语音:

代码语言:javascript
复制
        navigator.mediaDevices.getUserMedia({audio:true})
      .then(stream => {handlerFunction(stream)})

      function handlerFunction(stream) {
            rec = new MediaRecorder(stream);
            rec.ondataavailable = e => {
              audioChunks.push(e.data);
              if (rec.state == "inactive"){


                let blob = new Blob(audioChunks,{type:'audio/wav;codecs=0'});

                sendData(blob)
              }
            }
          }

使用speech_recognition发送文件以将其转换为文本:

代码语言:javascript
复制
    filename = "name.wav"
    print(filename)
    data = request.body
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    uploadedFile = open(filename, "wb")
    uploadedFile.write(request.body)
    uploadedFile.close()
    #os.path.join(BASE_DIR,filename)
    r = sr.Recognizer()
    file = sr.AudioFile(filename)
    with file as source:
        audio = r.record(source)
    msg = r.recognize_google(audio)
    print(msg)
    return redirect('/')

错误:-

代码语言:javascript
复制
ValueError: Audio file could not be read as PCM WAV, AIFF/AIFF-C, or Native FLAC; check if file is corrupted or in another format

另请注意,音频文件正在保存中,我可以清楚地听到声音/声音

音频文件:https://drive.google.com/open?id=17ucX9xRG0x5-JEtZDFaotSNLlcRs0jZc

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-03 00:07:40

文件格式是WebM,而不是wav,尽管有wav扩展名。您可以使用file命令检查文件类型:

代码语言:javascript
复制
$ file name.wav 
name.wav: WebM

您需要设置MediaRecorder的mimeType来录制wav:

代码语言:javascript
复制
rec = new MediaRecorder(stream);
rec.mimeType = 'audio/wav';

任何浏览器都可能不支持它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60484425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档