微软语音转语音翻译Windows正常,Linux遇_gi导入错误求助
问题解决:Linux下运行Azure语音翻译代码时出现
cannot import name '_gi'错误 错误原因
这个错误源于playsound库在Linux环境下依赖系统的gi(GObject Introspection)模块,而你使用的Python 3.11.5与系统预装的gi模块存在版本不兼容或循环导入问题。
解决方案
方案1:替换更兼容的音频播放库(推荐)
playsound对Linux的支持较差,改用simpleaudio可以避免依赖问题:
- 卸载现有
playsound:pip uninstall -y playsound - 安装
simpleaudio:pip install simpleaudio - 修改代码中的音频播放部分:
替换原导入语句:
替换播放# from playsound import playsound import simpleaudio as saharvard.wav的代码:# playsound(audioFile) wave_obj = sa.WaveObject.from_wave_file(audioFile) play_obj = wave_obj.play() play_obj.wait_done() # 等待音频播放完成
方案2:修复gi模块的版本适配
如果坚持使用playsound,可以通过软链接适配Python 3.11:
- 先安装系统级依赖(Debian/Ubuntu系):
sudo apt-get update && sudo apt-get install python3-gi python3-gi-cairo gir1.2-gtk-3.0 -y - 找到系统中
gi模块的编译文件,创建适配Python3.11的软链接:# 替换310为你系统中原有的Python版本号(比如3.10) sudo ln -s /usr/lib/python3/dist-packages/gi/_gi.cpython-310-x86_64-linux-gnu.so /usr/lib/python3/dist-packages/gi/_gi.cpython-311-x86_64-linux-gnu.so sudo ln -s /usr/lib/python3/dist-packages/gi/_gi_cairo.cpython-310-x86_64-linux-gnu.so /usr/lib/python3/dist-packages/gi/_gi_cairo.cpython-311-x86_64-linux-gnu.so
方案3:临时跳过音频播放(快速测试)
如果不需要预听输入音频,可以直接注释掉播放代码:
# playsound(audioFile)
这样可以绕开playsound的依赖问题,优先验证翻译与合成功能是否正常。
内容的提问来源于stack exchange,提问作者Babar
相关产品推荐
相关产品推荐

