Я пытаюсь записать звук через 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, но это тоже дает мне ошибку в этих файлах. Что я могу с этим сделать?