工作记录
Todo
TTS 发音功能 【doing】
继续设计:
文案:
- 显示句子发音按钮 [x]
功能:开启后,在每个英语句子后面显示一个播放按钮,点击后显示加载模样,加载成功后,播放音频,同时按钮变为暂停模样;再次点击就暂停,再点击就播放。
播放状态:
idle => 显示播放 loading => 显示加载 playing => 显示暂停 暂停 => 显示播放
开关状态:通过 cookie 序列化功能开启、关闭的状态
TTS 能力:构建一个新的 TTS server, 使用 cached 非实时接口返回音频结果。
- cache 构建:
- 在 hugo 侧,基于 ts 完成英语句子抽取功能:
- 输入:dist 接口
- 输出:一个
{data: [{id: str, text: str, src_doc: list[str]}], project: dajuan}json 文件,annotated as$CACHED_TTS_TEXT
- github action 里,在完成 hugo build 后,调用这个 ts,生成该文件
- 然后 ssh 到 server,执行
cached-tts-gen --data $CACHED_TTS_TEXT --gen-model public
- 在 hugo 侧,基于 ts 完成英语句子抽取功能:
- tts-server 接口
tts生成接口:真正的 TTS 生成接口;给定 text, model, 生成音频【流式】- 支持模型:
- public: 找到一个免费的,可以直接调用的接口
- local-kokoro:本地的模型
- local-dajuan: 本地的模型
- 支持模型:
cached-tts/gen生成接口: 给定 id, project, 返回音频【流式】或者 None (不会去调用 tts) 注意,不需要 text,因为这里只读取cached-tts/add添加接口:给定 id, text, project, tts-model, audio, 设置音频内容;- 需要 text.
- 需要鉴权(先简单基于 api-key,api-key 固定即可)
- 接收一个特殊的参数:id_exist_action, 决定当 id 冲突的处理逻辑:pass, override
cached-tts/del删除接口:给定 id, 删除对应的内容(数据库+音频)cached-tts/list返回所有的 cache 数据:给定 project, 返回 (id, text, project, tts-model, audio-is-effective) 元组
- 本地与云端同步:
- hugo build 后,与云端一样,调用 ts 生成句子文件, 记为 local-list
- 生成 TTS 文件并添加到云端(
cached-tts-gen?)- 设置最佳的 tts-model 为 best-tts-model
- 调用
cached-tts/list获取云端的数据, 记为 remote-list - 对下面的句子做后续生成+添加处理:
- 取 remote-list 与 本地的 local-list 交集,然后取 tts-model 不 等于 best-tts-model 的 句子
- 取 local-list - remote-list (增量)
- 生成+添加处理
- 使用 best-tts-model, 对句子生成音频
- 调用
cached-tts/add添加内容,id_exist_action=override
- 对下面的句子做删除操作:
- 取 remote-list - local-list (减量)
开始写 tts-server
准备写年终总结吧
搭建基本本地 LLM 的小龙虾
游戏开发:大概率还是用 cocos creator
Process
生活记录
昨夜听着淅沥沥的雨,和呜呜叫的风,感觉难得的舒服。今早起来跑步,没有雨了,但地还是湿的,气温有点低。站在外面看完了乔布斯传。
科技与人文的交会,这是给我印象最深的内容。我该怎样去构建属于我自己的交会呢?要构建出属于自己的感受。
中午洗绞肉机的刀片的时候,又又又给割到手了… 然后,就摆烂了。本来想看下黑泽明的梦,但是看了 5 分钟吧就看不下去了,节奏慢,暂时也没有耐性。 然后完了下宝宝巴士的游戏,有「宝宝巴士」和「宝宝巴士大世界」,不知道二者的关系,但后者似乎好一点。 里面的生活百科,认识水果我觉得做得挺有艺术的—玩葡萄,葡萄就会“葡萄葡萄“的叫,然后点太阳,一颗颗葡萄成熟,同时发出 do ri mi 的音乐,真有艺术啊。
后来黄车车有点闹,我把葡萄给她看,完全上瘾了,导致不能停了。最后因为宝宝巴士自己的屏幕时间到了,看不了了,她嚎啕大哭,估计有 5 分钟以上,最后好好轻轻讲故事才算是哄下来。
之后,自己出来,想看电影的,但最后还是写了会儿代码。先做事情吧。
情绪记录
Good
Bad
Reflect
黄车车爆哭的时候,我又开始在边上逼逼说“你哭有什么用“,好好让我别说了,我说“这都是惯出来的“等等。好好再次让我不要在这个时候说这个话。
我对吗?确实是火上浇油了。但是,黄车车现在也不是能讲道理的,如果总是因为她哭就安抚,是否会让她越来越得寸进尺呢?我也不知道,感觉得问下 AI 了。