我正在尝试使用 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 应用程序建议一种方法来实现此脚本。
经过几天的调查,我找到了在使用虚拟环境和 IIS 部署时解决
recognizer.recognize_google
或语音转文本 (STT) 问题的解决方案。
解决问题的关键是确保您创建并使用
virtual environment
而不是使用 c:/python
中的 Python。
这里有一个简明指南:
创建虚拟环境:
使用以下命令创建名为“env”的虚拟环境:
python -m venv env
激活虚拟环境:
.\env\Scripts\activate
依赖安装
当虚拟环境处于活动状态时,为您的项目安装所需的 pip 库