谷歌娘语音,就是在使用谷歌翻译的时候点击播放时的语音包。经常看到一些 vlog 作者会使用这样的语音添加旁白。根据网上的那些教程去打开开发者工具下载这些语音,数量少还行,一多的话就让人觉得无聊。于是能命令行解决就命令行,考虑到有些人可能不熟悉命令行,本文是 step by step 教程,前面觉得简单可以直接略过。
首先我们需要安装一下 oh-my-zsh:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
编辑 oh-my-zsh 的 .zshrc 配置文件,这个文件隐藏在用户根目录下,输入命令 open ~/.zshrc 用进行可视化编辑,如果你要使用 vim、nano 这样的工具编辑也行,如果你使用他们进行编辑应该自然懂得如何操作,在 .zshrc 末尾添加如下代码:
tts(){
encode=$(python -c "import urllib, sys; print urllib.quote(sys.argv[1])" $1)
curl 'https://translate.google.cn/translate_tts?ie=UTF-8&q='$encode'&tl=zh-TW&client=tw-ob' -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3835.0 Safari/537.36' -H 'referer: https://translate.google.cn/translate_tts?ie=UTF-8&q='$encode'&tl=zh-TW&client=tw-ob' 2>/dev/null > $1'.mp3'
}
最后打开终端,输入如下命令让自定义的 function 生效:
source ~/.zshrc
使用教程:tts [你想说的话]
输入这段命令后就会在当前目录下生成一个文件,文件名为:你想说的话.mp3
例如,我想让谷歌娘语言说一段话:少数派,那么就是输入命令:
tts 少数派
如果你的要输入的文本中带有空格,请在文本两端分别加上一个单引号,例如:
tts 'see you again'
现在再来升级一下,下载好音频文件后自动复制到剪切板,首先我们需要创建一个 AppleScript 脚本来实现复制文件到剪切板的功能,输入以下命令新建一个 ctc(copy to clipboard) 脚本:
touch /usr/local/bin/ctc;open /usr/local/bin/ctc
在出现的文本编辑界面输入以下代码并保存:
#!/usr/bin/osascript
on run args
set the clipboard to POSIX file (first item of args)
end
赋予 ctc 文件可执行权限:
chmod +x /usr/local/bin/ctc
再刚才编辑的 .zshrc 的 tts function 添加一行用于复制的命令:ctc $(pwd)/$1'.mp3'
tts(){
encode=$(python -c "import urllib, sys; print urllib.quote(sys.argv[1])" $1)
curl 'https://translate.google.cn/translate_tts?ie=UTF-8&q='$encode'&tl=zh-TW&client=tw-ob' -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3835.0 Safari/537.36' -H 'referer: https://translate.google.cn/translate_tts?ie=UTF-8&q='$encode'&tl=zh-TW&client=tw-ob' 2>/dev/null > $1'.mp3'
ctc $(pwd)/$1'.mp3'
}
再次 source ~/.zshrc 之后就可以在下载音频文件之后再自动将音频文件复制到剪切板了
再方便一点的玩法?做个 Alfred Workflow 就好,有需要可以自己动手试试。
感谢朋友 qwq 在 Web 方面提供的帮助,因为之前 curl 的时候都会返回 403 forbidden,经提示要带上 referer 和 user-agent