www_site/docs/CHANGELOG.md

5.0 KiB
Raw Blame History

改动记录CHANGELOG

本文件按时间倒序记录每次改动的位置内容,中文注释,便于后续接手的同学快速定位。


2026-09-18TTS 页面调整 + 真人声音配音模式 + 推送凭据修复

分支feat/chip-resources 最新提交74110fb(已推送) 线上状态:已发布到 www.kaotings.com,服务器 45.197.145.138 上的 release 为 ~/releases/74110fb-wwwsystemd 服务 kaotings-webCaddy 反代 127.0.0.1:3000

1. 删除「减负区」标题与说明文字(提交 b4c3a99

  • 文件app/tts/page.tsx
  • 位置:原输入卡片下方独立区块的头部
  • 删除内容03 / Assist减负区把识别、校对和分段交给系统,客户只需要确认内容和听结果。
  • 连带处理:移除该区块上已失效的 aria-labelledby="assist-title"(全站无其它引用)

2. 三个功能卡移到「音色清单」文字下方(提交 d79c6cb12eef4b

  • 文件app/tts/page.tsx(现约 576582 行)
  • 改动:把「图片转文字 / 生成前查错字 / 自动分段」三张 assist-card 从页面底部独立区块移入「01 / Input 输入文本」卡片内部,放在 音色清单已更新 · N 个音色 这行文字下方,用 md:grid-cols-3 三列对齐
  • 功能保全:隐藏的图片选择 inputfileInputRef)与 OCR 提示 helperMessage 一并迁入,行为不变
  • 删除:原底部独立区块(移走卡片后只剩「少打字 · 少校对 · 少返工」徽标,已随区块删除)
  • 说明d79c6cb 先放到编辑器下方,12eef4b 按反馈修正到「音色清单」下方,最终位置以后者为准

3. 新增「真人声音配音模式」(提交 14bc759

前端 app/tts/page.tsx

  • 新增状态:myVoice(声音样本 { name, dataUrl })、recording(是否正在录音)
  • 新增 refrecorderRefMediaRecorder 实例)、voiceFileRef(音频文件选择)
  • 新增函数(约 405470 行):
    • startRecording()navigator.mediaDevices.getUserMedia + MediaRecorder 录音,停止后转成 data URL 存入 myVoice
    • stopRecording():停止录音
    • handleVoiceFile():上传音频文件(类型校验 + 8 MB 上限)
    • clearMyVoice():清除样本,回到内置音色
  • createSpeech() 改为双通道:有 myVoice → 调 /tts-clone;否则走原 /tts/v1/audio/speech
  • 面板 JSX约 584600 行):位于三张功能卡下方,包含 🎙 真人声音配音模式 标题、使用说明、● 录制我的声音 / ■ 停止录音上传声音清除样本、样本试听条与「已就绪」状态

服务端 app/tts-clone/route.ts(新增文件)

  • POST /tts-clone,入参 { text, reference_audio(data URL), response_format, speed }
  • 读取服务端环境变量 TTS_CLONE_URL 转发给克隆引擎;未配置时返回 501(前端提示「真人配音引擎尚未接通,请先选择内置音色」,不假装成功);上游失败返回 502
  • 路径选择原因:线上 Caddy 中 /api/* 转发到 FastAPI:8000/tts/* 转发到 TTS 引擎,只有 /tts-clone 这类路径会落到 Next.js

样式 app/globals.css

  • 新增 .voice-clone-panel380 行)与 .voice-clone-panel.is-ready388 行):青色描边面板,样本就绪后高亮

本地联调 services/mock-tts/server.mjs

  • 新增 POST /v1/audio/clone-speech174 行):校验文本与 reference_audio 后返回演示音频
  • 配合未提交.env.localTTS_CLONE_URL=http://127.0.0.1:8100/v1/audio/clone-speech,本地可跑通「录音/上传 → 生成」全流程

待后续程序员跟进

  • 实测上游 TTS 引擎(qwen3-tts129 个固定音色)目前没有声音克隆接口:无音色注册端点,未知参数会被静默忽略
  • 引擎方提供克隆接口后,只需在服务器为 kaotings-web 增加环境变量 TTS_CLONE_URL(指向克隆接口)即可启用,前端零改动

4. 推送凭据问题修复(提交 438a4d7cee2074

  • 文件docs/OPERATIONS.md §8
  • 内容Gitea 的 OAuth access token 仅 1 小时有效,而 Git Credential Manager 无法感知过期 → 闲置超 1 小时后第一次推送必失败remote: Verify / Authentication failed
  • 修复:新增凭据助手 C:/Users/kts/.git-credential-kaotings.mjs,每次用 refresh token 换新 access token全局配置中按「空值重置 + 助手 + manager」排序详见该章节

5. 本地配置纳入版本管理(提交 74110fb

  • next.config.ts:新增 rewrites()仅当设置了 TTS_MOCK_UPSTREAM 时把 /tts/v1/* 代理到本地 mock TTS生产不设置该变量行为不变
  • AGENTS.md / CLAUDE.mdNext.js 16 next dev 自动生成的 AI 说明文件
  • next-env.d.ts:自动生成文件,保持生产路径(.next/types/...),未提交 dev 路径的临时改动