想尝试写一个单词听写的小程序,写到一半发现微信小程序不像chrome浏览器一样,可以直接朗读文本,微信自身倒是具备文本朗读功能的。意外归意外,倒也没觉得有什么遗憾的,毕竟浏览器的机械音,如果有更好的方案,本身就是想弃之不用的,于是百度搜索了一下文本转语音的工具,发现大家比较推崇的是微软的edge-tts。
测试了几个在线的利用edge-tts的工具,发现确实挺不错的,基本已经近似人声,而且还提供很多种不同的角色可供选择,当然国内的tts工具也不少,比如阿里云的tts工具也是抑扬顿挫,但试用额度较少(api的说明也完全看不懂 T_T)。于是就想着在本地的armbian小主机上搭建一个可以本地运行的edge-tts环境。
python就有这个模块,但尝试使用pip安装时:
pip install edge-tts系统报了一个类似这样的错误:
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.11/README.venv for more information.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.deepseek说这个错误是Debian/Ubuntu系统的一项安全保护措施,阻止直接用pip在系统Python环境中安装包,以防止破坏系统包管理器的依赖关系。并且提供了3个方案:
- 方案一:使用虚拟环境(推荐,最安全)
- 方案二:使用pipx(适合命令行工具)
- 方案三:使用apt安装(简单但不保证有)
简单但不保证有是什么鬼~,虚拟环境听着过于高端,于是就尝试了一下pipx。
# 1. 安装pipx(如果还没安装)
sudo apt update
sudo apt install pipx
pipx ensurepath # 将pipx路径添加到环境变量
# 可能需要重新打开终端或执行:
source ~/.bashrc
# 2. 使用pipx安装edge-tts
pipx install edge-tts
# 3. 验证安装
edge-tts --version
# 4. 基本使用(现在edge-tts已是全局命令)
edge-tts --text "你好,Armbian" --write-media hello.mp3安装命令如上,简单明了,安装成功后测试,可以通过命令行正确生成音频文件,感觉armbian的含金量又提升了一点。

