将 mp3 转录为文本 (python) --> "RIFF id" 错误

Transcribing mp3 to text (python) --> "RIFF id" error

我正在尝试将 mp3 文件转换为文本,但我的代码 returns 出现下面概述的错误。感谢您的帮助!

This 是一个示例 mp3 文件。下面是我尝试过的:

import speech_recognition as sr
print(sr.__version__)
r = sr.Recognizer()

file_audio = sr.AudioFile(r"C:\Users\Andrew\Podcast.mp3")

with file_audio as source:
    audio_text = r.record(source)

print(type(audio_text))
print(r.recognize_google(audio_text))

完整的 error 我得到了。似乎是:

Error: file does not start with RIFF id

感谢您的帮助!

您可以做的一件事是将 mp3 转换为 wav。使用 mp3 文件进行测试时,我遇到了与您相同的错误。但转换后,您的代码运行良好。也可以编写您的代码,以便您可以使用 mp3,但我的知识到此为止。

也许别人知道的比我多post。但如果你只是不想测试,你现在可以使用 audacity 之类的东西来转换它。

此外,如果您使用大文件,您可能会遇到问题,请在线阅读一些相关内容。但没有什么能阻止你尝试。

这是相关网站:

https://www.geeksforgeeks.org/python-speech-recognition-on-large-audio-files/

你需要先把mp3转成wav,然后才能转录,下面是你的代码修改后的版本。

import speech_recognition as sr
from pydub import AudioSegment

# convert mp3 file to wav  
src=(r"C:\Users\Andrew\Podcast.mp3")
sound = AudioSegment.from_mp3(src)
sound.export("C:\Users\Andrew\podcast.wav", format="wav")

file_audio = sr.AudioFile(r"C:\Users\Andrew\Podcast.wav")

# use the audio file as the audio source                                        
r = sr.Recognizer()
with file_audio as source:
audio_text = r.record(source)

print(type(audio_text))
print(r.recognize_google(audio_text))

以上修改代码中,先将mp3文件转成wav,再进行转录处理。