工作记录

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
    • 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 了。