Edge-TTS 和 PopClip 结合朗读选择的文字

一直使用默认的 say 来朗读,但是效果一言难尽。今天 google 了一下 “popclip 朗读”,前两个推荐就是 edge-tts,特别是 X 上的推友 连代码都写出来了,于是部署了 一下。

安装

使用 mkdir edge-tts 创建一个目录,进入目录中初始化python虚拟环境:

python3 -m venv .venv
source .venv/bin/activate

然后把 edge-tts安装到该虚拟环境中:

pip install edge-tts

使用 edge-playback --text "hello"测试,提示需要安装 mpv。使用 brew 安装 mpv(会安装比较多的依赖):

brew install mpv

再次运行 edge-playback --text "hello"lulu 提示要连接网络,允许后就可以播放声音了,效果非常不错。

配置

修改推友的代码,把

/path/to/edge-playback --rate="${POPCLIP_OPTION_RATE:-+20%}" --voice "${POPCLIP_OPTION_VOICE:-zh-CN-XiaoxiaoNeural}" --text "$POPCLIP_TEXT"

改成了

export PATH=${POPCLIP_OPTION_PATH}:$PATH
edge-playback --rate="${POPCLIP_OPTION_RATE:-+20%}" --voice "${POPCLIP_OPTION_VOICE:-zh-CN-XiaoxiaoNeural}" --text "$POPCLIP_TEXT"

因为我们是把 edge-tts 安装在 python 的虚拟环境中,需要设置 PATH 环境变量。

然后,在下面的 options 中增加了

- identifier: path
label: Path
description: The bin path where edge-playback/edge-tts located
type: string

这样使用的时候就不需要修改代码,只需要把之前创建的edge-tts/.venv/bin 目录的全路径填入第一个设置栏即可。

代码

完整的代码在 github

参考:

https://gist.github.com/limboinf/e9345163d721548e580d730d094dd003