Я хочу преобразовать звукозапись из Facebook Messenger в текст. Вот пример файла .mp4 отправить с помощью API Facebook,: https://cdn.fbsbx.com/v/t59.3654-21/15720510_10211855778255994_5430581267814940672_n.mp4/audioclip-1484407992000-3392.mp4?oh=a78286aa96c9dea29e5d07854194801c&oe=587C3833Преобразование звука mp4 в текст в python
Так что этот файл содержит только аудио (не видео), и я хочу, чтобы преобразовать его в текст.
Кроме того, я хочу сделать это как можно быстрее, так как я буду использовать сгенерированный текст в приложении практически реального времени (т.е. пользователь отправляет файл .mp4, сценарий переводит его в текст и показывает его обратно) ,
Я нашел этот пример https://github.com/Uberi/speech_recognition/blob/master/examples/audio_transcribe.py и вот код я использую:
import requests
import speech_recognition as sr
url = 'https://cdn.fbsbx.com/v/t59.3654-21/15720510_10211855778255994_5430581267814940672_n.mp4/audioclip-1484407992000-3392.mp4?oh=a78286aa96c9dea29e5d07854194801c&oe=587C3833'
r = requests.get(url)
with open("test.mp4", "wb") as handle:
for data in r.iter_content():
handle.write(data)
r = sr.Recognizer()
with sr.AudioFile('test.mp4') as source:
audio = r.record(source)
command = r.recognize_google(audio)
print command
Но я получаю эту ошибку:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\Asterios\Anaconda2\lib\site-packages\speech_recognition\__init__.py", line 200, in __enter__
self.audio_reader = aifc.open(aiff_file, "rb")
File "C:\Users\Asterios\Anaconda2\lib\aifc.py", line 952, in open
return Aifc_read(f)
File "C:\Users\Asterios\Anaconda2\lib\aifc.py", line 347, in __init__
self.initfp(f)
File "C:\Users\Asterios\Anaconda2\lib\aifc.py", line 298, in initfp
chunk = Chunk(file)
File "C:\Users\Asterios\Anaconda2\lib\chunk.py", line 63, in __init__
raise EOFError
EOFError
Есть идеи?
EDIT: Я хочу запустить скрипт на бесплатной основе pythonanywhere.com, поэтому я не уверен, как установить такие инструменты, как ffmpeg.
EDIT 2: Если вы запустите указанный выше сценарий, заменив URL-адрес этим «http://www.wavsource.com/snds_2017-01-08_2348563217987237/people/men/about_time.wav» и измените «mp4» на «wav», он отлично работает. Так что это точно в формате файла.
Вы можете играть в test.wav с аудио/видео плеером? –
Yeap. Вы можете запустить код и здесь звук. – Stergios
вы читаете файл mp4 как wav-формат, проверяйте это и конвертируйте свой mp4 в wav –