PyDub:[WinError 6]句柄无效。当 recognize_google 转录文本时。 FFMPEG

问题描述 投票:0回答:1

我正在尝试使用 pydub 和语音识别库将音频转录为文本。我的代码已成功将“.mp3”文件转换为“.wav”,但在使用 recognize_google 库进行转换/转录时出现此错误

“错误:[WinError 6] 句柄无效。”

问题在于,当我直接运行这个脚本时,它运行得很好,但是当我在 Flask 中创建的 API 调用这个脚本时,它就失败了。

我的 Flask 应用程序托管在 IIS 服务器上。

with recaptcha_audio as source:
recognizer.adjust_for_ambient_noise(source)
audio = recognizer.record(source)
sleep(2)
try:            
    transcribed = recognizer.recognize_google(audio, language="en-US")
except Exception as e:
    log.error(f"-----------------------ERROR: {str(e)}")
    return f"-----------------------ERROR: {str(e)}"

我尝试更改音频文件,并使用“stdin=subprocess.DEVNULL”操作 AudioSegment.py 子进程实现。

还没有成功。 请为我的带有 IIS 的 Flask 应用程序建议一种方法来实现此脚本。

ffmpeg speech-recognition pydub transcription
1个回答
0
投票

经过几天的调查,我找到了在使用虚拟环境和 IIS 部署时解决

recognizer.recognize_google
或语音转文本 (STT) 问题的解决方案。

解决问题的关键是确保您创建并使用

virtual environment
而不是使用
c:/python
中的 Python。

这里有一个简明指南:

  1. 创建虚拟环境:

    使用以下命令创建名为“env”的虚拟环境:

    python -m venv env

  2. 激活虚拟环境:

    .\env\Scripts\activate

  3. 依赖安装

    当虚拟环境处于活动状态时,为您的项目安装所需的 pip 库

© www.soinside.com 2019 - 2024. All rights reserved.