【问题标题】:Audio file could not be read as PCM WAV, AIFF/AIFF-C, or Native FLAC音频文件无法读取为 PCM WAV、AIFF/AIFF-C 或 Native FLAC
【发布时间】:2020-06-14 11:42:55
【问题描述】:

我正在使用 .wav 格式的 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 将其转换为文本:

    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('/')


错误:-

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

【问题讨论】:

    标签: javascript django python-3.x speech-recognition speech-to-text


    【解决方案1】:

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

    $ file name.wav 
    name.wav: WebM
    

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

    rec = new MediaRecorder(stream);
    rec.mimeType = 'audio/wav';
    

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

    【讨论】:

    • 我在 chrome 上试过,但它不工作,你是对的,它可能不支持,你能建议我一些其他方法吗,看起来目前的方法不起作用
    • 您可以在处理之前使用 ffmpeg 将文件转换为 wav。要在 javascript 中录制 Wav,您可以使用 WebAudio API,而不是 MediaRecorder,请参阅 github.com/mattdiamond/Recorderjs
    • 你的回答很有帮助,但可以写或给我一个关于如何在 python 中使用 FFmpeg 将我的 filename. WebM 转换为 filename.wav 的代码,这将非常有帮助
    • 好的,我可以使用 github.com/kkroening/ffmpeg-python 将我的文件转换为 wav 格式
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 2012-10-31
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多