上回说到,在 huggingface 搭建好 vits server 后,平时直播的弹幕语音靠 bilive_dm 播报,有时候口糊听不清还要切窗口看一眼。然后看到弹幕姬有个自定义 tts 引擎,故考虑接入试试。
Re: TTSCat Re: TTSCat 插件 以及 仓库地址
开幕 archived 问题不大。 插件页面有自定义 tts 引擎 url 的参考格式,怎么简单怎么来(GET)。 在临时目录添加一个 mp3 文件并启动 http 服务器
1 2 3 python3 -m http.server # 自定义引擎地址填入如下 url https://127.0.0.1:8000?text=$TTSTEXT 语音成功播放后感觉 so easy,然后如无意外的出现意外了。
踩坑 fastapi 写个简单 get 接口。
1 2 3 4 5 6 7 8 9 10 @app.get("/voice") async def get_audio(token: str, text: str): if token != os.environ.get("token"): return {"code": 401} # vits 合成语音,返回二进制文件 audio = load_fast_vits(text) if audio is None: return {"code": 500} else: return FileResponse(audio) 发送弹幕后什么都没有发生,打开调试模式看看怎么回事。 一切正常,还是什么都没有发生。 在缓存目录下找到 get 获取到的音频文件,直接播放没有问题。
配置不难就是坑多,而且完全不可用。
PRoot 与 chroot chroot 和 PRoot的一个主要区别是 chroot 是原生的。
PRoot通过使用 ptrace() 劫持系统调用参数和返回值来伪造文件系统布局和用户/组ID。 chroot不造成额外的开销,在任何设备上都不会出现问题,但是它需要root权限。 所以基于PRoot的 UserLAnd 和 Termux 并不适合。 一开始用 UserLAnd 配置环境倒是没问题,但是执行到 pip install package 的时候就报 Permission Denied 错误。
root 闲置机器是 Nubia Z9,安卓 5.2 版本直接线刷回出厂版本后使用 Kingroot 一键 root。
不得不说这块屏幕和金属边框设计放到 2023 年还是很漂亮,最近新出的 Z50 Ultra 也是类似设计。 可惜的是 骁龙810 + 电池 2900毫安 + 3G 运行内存。810 在日常室温使用只能用烫手来形容,加上扎实的手感,拿起来怕摔加保护壳又没手感+升温,当日常备用机完全不合适。
LinuxDeploy 仓库地址:LinuxDeploy
基本按图里面的配置或者全程科学上网都没有什么问题,BusyBox 实测是不需要的。
架构选 ARM64 即可,系统一定要选 LTS Release,非 LTS 不支持 deadsnakes 源,apt get install python3.7 肯定比源码编译快多了。当然,想尝试花一个小时从源码编译 Python3.7 我也不拦着(
Win10 下复制图片发送到 QQ 群总是变成文件,每次要打开图片-复制-关闭图片也很繁琐。
市面上现有的工具不多:
xclip,仅限 Linux 平台使用。 CopyContents,免费试用 15 天,每次右键复制图片内容都提示一次,还有个巨复古的浮框。 Talk Is Cheap 保存为 pyw 文件用 pythonw.exe 执行避免出现一闪而过的黑框。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 # coding:utf-8 import sys import traceback import win32clipboard from io import BytesIO from PIL import Image def send_to_clipboard(clip_type, data): win32clipboard.OpenClipboard() win32clipboard.
人生意义也不过是去码头整点薯条。
别人说的 别人的文章写得很好,把你想说的全说了。
总是深思熟虑,文章也看似完美。 知识体系还是别人的,甚至模糊记忆的感受也是别人的。 时间一长什么都记不住。
我想说的 情感表达热烈,思路流程简洁。
团结紧张,严肃活泼。
博客有一个 当下迷思 的标签,仅有一篇文章,内容随时间段落更新一句话、一张图、一段思考过程。
可能很克制,很幼稚,很愤怒,很无厘头,也可能充满希望。
为了在某一天回想起来那些重要的,不重要的刹那,翻起万千思绪。
梯子爆炸 前几天经历过一次两个机场同时失效的情况,期间拿 CloudFlare WARP 客户端暂时顶过去。
梯子这东西日常使用感受不到好处,一旦所有梯子同时失效只能用灾难来形容。
虽然 CloudFlare 早几年被玩坏了,但是作为一个备用手段绰绰有余。
APP 端 ZeroTrust 验证失败的绕过方法 在 Issue 区看到 AndroidStudio 抓包获取 Teams ID 的方法,尝试了一遍发现没什么必要:手动配置更快。
但手机端在验证的最后一步提示失败,挂梯子也无法解决。
在 Windows 留意到有一个 DOH 网关的字样。虽然 warp-cli set-gateway 是制定官方服务器作 DNS 查询,填到手机上却自动激活了 ZeroTrust。
WRAP 配置 ZeroTrust 的教程一搜就有:滥用 Cloudflare ZeroTrust WARP 科学上网。
安装好 Cloudflare Windows Desktop Client 后开启本地代理,往 Clash 添加一个 Socks5 服务器即可。
Clash 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 mixed-port: 7890 # Linux 和 macOS 的 redir 代理端口 redir-port: 7892 # 允许局域网的连接 allow-lan: true authencation: -"<user>:<password>" # 规则模式:Rule(规则) / Global(全局代理)/ Direct(全局直连) mode: rule # 设置日志输出级别 (默认级别:silent,即不输出任何内容,以避免因日志内容过大而导致程序内存溢出)。 # 5 个级别:silent / info / warning / error / debug。级别越高日志输出量越大,越倾向于调试,若需要请自行开启。 log-level: info # Clash 的 RESTful API external-controller: '127.
你真的需要云服务器吗 大二买的 Raspberry Pi 3B+ 至今服役在家里的路由器旁,虽然我从未拿它做什么正儿八经的研究和生产,但是想要折腾新东西的时候总是先在上面跑。
想起前几年买的国内云学生机,食之无味弃之不可惜。一方面写写博客纯静态页面挂载在 GitHub 上足够,另一方面很多用得到的服务也不需要这么多性能。
fail2Ban 仓库地址:fail2Ban
如果用的是 Python3,需要先执行一遍 ./fail2ban-2to3。不然会报如下错误:
1 ERROR: No module named 'ConfigParser' aliddns 仓库地址:aliddns
广州电信给了公网 IPV4 地址,路由器也开启了相应 ddns 以及端口映射。树莓派的 ddns 主要是解析 IPV6 地址,多点保险手段总是好的。
UnblockNeteaseMusic 仓库地址:UnblockNeteaseMusic
Clash 仓库地址:Clash
自用机场和 WARP(wireproxy) 两套配置,后者反而还稳定些(低频率请求)。
go-cqhttp 仓库地址:go-cqhttp
配合 nonebot 插件跑 qq 机器人,平时搜搜图还是很好用的。
v2ray 仓库地址:V2ray
前两年折腾联通 host 免流:直接花三块钱买网上提供的云免流服务,直接把各种 host 保存下来。一不需要手机安装 PackageCapture 抓包,二不怕短期失效。
pull.free.video.10010.com shoutingtoutiao1.10010.com 现在公司和家里的 WiFi 覆盖时间已经完全不需要折腾了。工作之后对时间开销看得更重:能花钱解决的中长期(持续需求)问题一律花钱解决。
当然,国内网盘这种东西不值得我付费。
OneDrive 之前也尝试过用全量备份脚本然后隔段时间就保存到电脑,但是压缩镜像耗时问题以及反复解压很容易忘记备份了什么。
现在干脆直接将本地目录(常用软件、各类配置文件)整个上传到 OneDrive,crontab 下加一行实现定时增量备份。
1 /home/pi/bin/rclone sync /home/pi/ rasp:/Raspberry --transfers 16 -P --onedrive-chunk-size 40M 用到的 Rclone 配置看这篇:Linux使用Rclone挂载OneDrive网盘