python - 我正在尝试使用 python 将 mp4 文件转换为文本,但出现此错误

标签 python ffmpeg jupyter-notebook

我在 jupyter notebook 中执行此操作,视频放置在同一文件夹中,即 mp4 文件我想通过识别视频中所说的内容将 nanavi.mp4 文件转换为文本,但我收到此错误

在此处输入代码

import speech_recognition as sr

import os

import pyaudio

command2mp3 = 'ffmpeg -i nanavi.mp4 nanavi.mp3'

command2wav = 'ffmpeg -i nanavi.mp3 nanavi.wav'

os.system(command2mp3)

os.system(command2wav)

r = sr.Recognizer()

with sr.AudioFile("nanavi.wav") as source:

    audio = r.record(source, duration=10)

    print(r.recognize_google(audio))

**ERROR**

该文件已放置在 ipynb 文件的文件夹中
FileNotFoundError                         Traceback (most recent call last)

<ipython-input-19-9f97c7524cb8> in <module>

----> 1 with sr.AudioFile("nanavi.wav") as source:

      2     audio = r.record(source, duration=10)

      3     print(r.recognize_google(audio))


C:\ProgramData\anaconda3\lib\site-packages\speech_recognition\__init__.py in __enter__(self)

    201         try:
    202             # attempt to read the file as WAV
--> 203             self.audio_reader = wave.open(self.filename_or_fileobject, "rb")
    204             self.little_endian = True  # RIFF WAV is a little-endian format (most ``audioop`` operations assume that the frames are stored in little-endian form)
    205         except (wave.Error, EOFError):

C:\ProgramData\anaconda3\lib\wave.py in open(f, mode)
    508             mode = 'rb'
    509     if mode in ('r', 'rb'):
--> 510         return Wave_read(f)
    511     elif mode in ('w', 'wb'):
    512         return Wave_write(f)

C:\ProgramData\anaconda3\lib\wave.py in __init__(self, f)
    158         self._i_opened_the_file = None
    159         if isinstance(f, str):
--> 160             f = builtins.open(f, 'rb')
    161             self._i_opened_the_file = f
    162         # else, assume it is an open file object already

FileNotFoundError: [Errno 2] No such file or directory: 'nanavi.wav'

最佳答案

尝试通过运行命令安装 flac

sudo apt-get install flac

这是一个常见的编解码器相关问题,安装 flac 将解决它。

关于python - 我正在尝试使用 python 将 mp4 文件转换为文本,但出现此错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61906714/

相关文章:

python - 2.5 的纯 Python 有理数模块

c - 如何使用 ffmpeg 从 H264 SPS 获取宽度和高度

python - Foursquare API 请求在版本参数上返回错误

ipython - 使用来自单元格的命令重新启动 ipython 内核

ipython - 向 ipython 交互式小部件添加移动水平线

python - 获取 Pandas 列的总数

python - 在循环中使用 .head() 和 pandas 时性能缓慢

python - 根据元素将一个列表拆分为多个

ffmpeg - 如何为特定(一组)文件找到最佳 FFmpeg libx265 编码设置

image-processing - 使用 libswscale 缩放 YUV420P - 输出灰色图像