新版Google Translate网页语音提取方案咨询 含XHR解析与GNU/Linux录音方向
针对谷歌翻译语音提取的可行方案
1. 从现有XHR响应中解析提取音频
- 首先筛选请求路径包含
translate_tts或batch标识的XHR请求,这类请求就是承载语音资源的响应包 - 响应体中方括号包裹的数组结构里,最长的连续字符串段就是Base64编码的音频二进制数据,部分场景会带转义符,先把
\x、\u这类转义前缀处理后提取纯字符串 - 直接对提取的字符串做Base64解码,输出为
.mp3后缀的文件即可;如果响应拆分了多段音频,把所有解码后的二进制流按顺序拼接就能得到完整语音文件 - 要是响应体做了gzip压缩,先对整个响应体做解压操作再提取目标字符串即可
2. 借助GNU/Linux系统能力录制音频
不需要依赖站点结构解析,直接捕获浏览器输出的音频流,实现零损耗录制:
- 单进程精准录制(无杂音):先用
pactl list sink-inputs命令找到Chrome进程对应的音频流ID,执行命令parec --monitor-stream=【替换为你的流ID】 --format=s16le --rate=44100 --channels=2 | lame -r - output.mp3,点击发音按钮开始录制,发音结束后终止命令即可直接得到mp3文件,不会录到系统其他程序的声音 - 简单快速录制:用ffmpeg直接捕获默认音频输出,执行命令
ffmpeg -f pulse -i default output.mp3,录制时关闭其他发声程序即可,操作门槛更低
3. 其他可行实现思路
- 直接调用谷歌翻译TTS公开接口:接口参数规则固定,只需传入目标文本、语言编码、校验码tk即可直接返回mp3资源,tk的生成逻辑有公开的Python/JS实现代码,几十行脚本就能实现批量语音生成,完全不需要访问网页前端
- 用浏览器音频捕获插件:安装专门的网页音频资源捕获插件后,点击发音按钮时插件会自动识别到正在播放的音频资源,无需打开DevTools即可一键下载
- 浏览器控制台JS拦截:打开Chrome控制台,注入音频流拦截的JS代码,只要站点通过AudioContext加载音频资源,就能直接捕获到二进制流,一键导出为本地文件
内容的提问来源于stack exchange,提问作者Dmitry Dmitriev
相关产品推荐
相关产品推荐

