Не удалось открыть аудиоблок, записанный через response-mi c в python - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь записать звук через react-mi c и отправить звук через django rest framework для дальнейшей обработки. Пока все работало нормально, но у меня проблема из-за того, что я не могу открыть этот файл в python. Я пробовал wavio, wave, playsound, winsound и speech_recognition. Ни один из них не смог открыть файл или даже воспроизвести его, но файл работает отлично, когда я пытаюсь открыть его с помощью любого медиаплеера. Я также пробовал другие аудиоформаты, такие как mp3 и webm, но ничего из этого не помогает. Я не знаю, что делать сейчас.

Это ошибка, которую я получаю при использовании распознавания речи:

Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\speech_recognition\__init__.py", line 203, in __enter__
    self.audio_reader = wave.open(self.filename_or_fileobject, "rb")
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\wave.py", line 510, in open
    return Wave_read(f)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\wave.py", line 164, in __init__
    self.initfp(f)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\wave.py", line 131, in initfp
    raise Error('file does not start with RIFF id')
wave.Error: file does not start with RIFF id

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\speech_recognition\__init__.py", line 208, in __enter__
    self.audio_reader = aifc.open(self.filename_or_fileobject, "rb")
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\aifc.py", line 917, in open
    return Aifc_read(f)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\aifc.py", line 352, in __init__
    self.initfp(file_object)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\aifc.py", line 316, in initfp
    raise Error('file does not start with FORM id')
aifc.Error: file does not start with FORM id

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\speech_recognition\__init__.py", line 234, in __enter__
    self.audio_reader = aifc.open(aiff_file, "rb")
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\aifc.py", line 917, in open
    return Aifc_read(f)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\aifc.py", line 358, in __init__
    self.initfp(f)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\aifc.py", line 314, in initfp
    chunk = Chunk(file)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\chunk.py", line 63, in __init__
    raise EOFError
EOFError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
    response = get_response(request)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\rest_framework\viewsets.py", line 114, in view
    return self.dispatch(request, *args, **kwargs)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\rest_framework\views.py", line 505, in dispatch
    response = self.handle_exception(exc)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\rest_framework\views.py", line 465, in handle_exception
    self.raise_uncaught_exception(exc)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\rest_framework\views.py", line 476, in raise_uncaught_exception    
    raise exc
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\rest_framework\views.py", line 502, in dispatch
    response = handler(request, *args, **kwargs)
  File "C:\Users\User\Desktop\translator\lang_translator\views.py", line 23, in create
    text,voice=translate(path)
  File "C:\Users\User\Desktop\translator\lang_translator\translate.py", line 8, in translate
    with sr.AudioFile(filename) as source:
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\speech_recognition\__init__.py", line 236, in __enter__
    raise 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")     
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

Это это код, который я использую для чтения файлов:

import speech_recognition as sr

def translate(filepath):
    recogniser = sr.Recognizer()
    with sr.AudioFile(filepath) as source:
        audio = recogniser.record(source)
    text =recogniser.recognize_google(audio)
    return text

Это должно вернуть текст, но выдает ошибку. Я также пытался использовать другие аудиофайлы, которые не были записаны с помощью response-mi c, но это тоже дает мне ошибку в этих файлах. Что я могу с этим сделать?

...