新闻详情

新闻详情

首页 / 资讯中心 / 详情

画中有话:用腾讯云VITA+TTS两个Skill,把女儿的涂鸦变成睡前童话(TaoToken配置版)

发布时间:2026/9/26 11:40:45来源:尧图网络
画中有话:用腾讯云VITA+TTS两个Skill,把女儿的涂鸦变成睡前童话(TaoToken配置版)
1. 从冰箱上那张看不懂的画说起我家冰箱门上常年贴着五六张蜡笔画太阳是圆圈加放射线房子是三角加方块人是一个圆脑袋配四根火柴棍。每次闺女举着新作跑过来问“爸爸你看这是什么”我夸来夸去就那几个词——画得真棒、颜色好看。说实话我根本看不懂她画的是什么。五岁小孩的叙事你也知道开头说“这是一个恐龙”中间跳到“这是它的好朋友小花”结尾变成“然后天黑了”。故事没听明白倒是把她自己讲困了。有天晚上她睡着了我盯着冰箱上最新那张画看——一个大红圆圈旁边几根歪歪扭扭的绿线条右下角有个紫色的一团什么玩意。我在想这里面到底藏着什么故事后来我用 WorkBuddy 做了一次 Vibe Coding把腾讯云的两个 Skill 串了起来tencentcloud-vita负责“看画”tencentcloud-tts负责“说话”中间用 Agent 写故事。一张涂鸦进去一段有声睡前童话出来。这篇文章就把这条链路完整拆开包括 TaoToken 统一 Key 的接入配置、VITA 的调用骨架、TTS 的分句拼接以及我在 WorkBuddy 里踩过的坑。适合谁看家里有爱画画的小朋友、想玩腾讯云多模态能力、或者正在用 WorkBuddy 做 Agent 应用的开发者。不需要多深的 AI 背景会改 JSON、能跑 Python 脚本就行。2. 前置准备TaoToken 统一 Key 与腾讯云 Skill 开通2.1 为什么用 TaoToken 统一管理 Key这个项目要调两个腾讯云服务VITA多模态理解和 TTS语音合成。如果每个服务单独配一套密钥settings.json 会变得很乱换环境的时候容易漏。我用 TaoToken 做统一入口一个 Key 管多个模型的调用配置集中在一处排查问题也方便。TaoToken 官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 。注册后在控制台生成 API Key后面所有请求都走这个 Key。2.2 腾讯云侧开通 VITA 和 TTSVITA 需要单独申请。登录腾讯云控制台在模型广场里找到 youtu-vita启用后付费模式走免费额度就行不用充值。首次进入按提示开通平台服务需要腾讯云账号加实名认证。TTS 在 https://console.cloud.tencent.com/tts 点“开通服务”顺手领一下语音合成的资源包。智瑜音色101001是温柔女声特别适合念睡前故事我后面默认就用这个。2.3 settings.json 配置骨架WorkBuddy 的 Skill 配置放在项目根目录的 settings.json 里。下面是我实际用的结构把 TaoToken 的 Key 和腾讯云的 SecretId/SecretKey 分开管理{ taotoken: { api_key: sk-你的TaoToken密钥, base_url: https://taotoken.net/api }, tencentcloud: { secret_id: 你的SecretId, secret_key: 你的SecretKey, region: ap-guangzhou }, skills: { vita: { model: youtu-vita, endpoint: https://taotoken.net/api/v1/chat/completions }, tts: { voice_type: 101001, speed: 0.85, codec: mp3 } } }注意settings.json 不要提交到公开仓库。我习惯在 .gitignore 里加一行 settings.json本地留一份 settings.example.json 做模板。3. 可复制配置VITA 读画 TTS 配音的完整骨架3.1 VITA 读画关键是 story_hints 字段VITA 走 OpenAI 兼容协议调用方式和 chat completion 差不多。content 里塞一个 image_url 和一段 text 指令。提示词我没写“请识别图片中的内容”这种废话而是精确要求输出格式3 到 8 个元素每个元素标注名字、颜色、位置、大小还要猜场景、判断情绪、提取调色板。最关键的是 story_hints 这个字段。这是我加的——让 VITA 额外找出“孩子画得特别用心的地方”。一张画AI 能识别出“有个太阳”不稀奇但如果它能注意到“太阳画了笑脸”“小人的手画得特别大”这些细节就成了故事里最动人的种子。import base64 import json import requests ANALYSIS_PROMPT 你是一个儿童画解读专家。请分析这张儿童画严格按以下 JSON 格式输出 { elements: [ {name: 元素名, color: 颜色, position: 位置, size: 大小} ], scene: 场景描述, mood: 情绪判断, palette: [主色1, 主色2], story_hints: [孩子画得特别用心的细节1, 细节2] } 要求elements 3-8 个story_hints 找 1-3 个容易被大人忽略的细节。 def analyze_drawing(image_path, api_key): with open(image_path, rb) as f: img_b64 base64.b64encode(f.read()).decode() payload { model: youtu-vita, messages: [{ role: user, content: [ {type: image_url, image_url: {url: fdata:image/jpeg;base64,{img_b64}}}, {type: text, text: ANALYSIS_PROMPT} ] }], temperature: 0.3 } resp requests.post( https://taotoken.net/api/v1/chat/completions, headers{Authorization: fBearer {api_key}}, jsonpayload, timeout60 ) content resp.json()[choices][0][message][content] return json.loads(content)实测下来对典型蜡笔画元素识别率在七八成左右。太阳、房子、树、人这些大元素基本不会错小元素容易漏。但 story_hints 经常有惊喜——有一次它注意到“小人的手画得特别大”这个细节我都没留意到后来故事里就写了“小满的手很大大到能一把抓住整片阳光”。3.2 Agent 写故事七版提示词才定下来的铁律这一步没调任何 Skill完全靠 WorkBuddy 自己的 Agent 能力。但它是整个项目最难调的部分。不是技术上难是“写故事”这件事难。前几版写出来的故事 AI 味儿冲得不行动不动就“小满学到了一个重要的道理”。后来我改了七版定下几条铁律画里有什么故事里就得有什么。VITA 识别出的元素至少出现 80%不许替换。结尾必须是安静的、回家的画面。禁止一切说教句“道理是”“我们要”“这个故事告诉我们”出现一个字都不行。口语化多用拟声词少用成语。按年龄调词汇五岁孩子听“踌躇”肯定不行“犹豫了一下”就好多了。STORY_PROMPT 你是睡前故事作家。根据以下画面分析写一个 300-450 字的睡前故事。 画面分析{analysis} 主角小名{child_name}年龄{age}岁 铁律 1. 画面元素至少出现 80%不许替换 2. 结尾必须是安静的、回家的画面 3. 禁止说教句禁止道理是我们要这个故事告诉我们 4. 口语化多用拟声词少用成语 5. 直接输出故事正文不要标题以外的任何说明3.3 TTS 配音150 字限制的拆解方案腾讯云 TTS 单次请求上限 150 字。一篇 300 到 450 字的睡前故事肯定会超。我的 speak.py 里写了个分句函数按句号、问号、感叹号先切大段超长的再按逗号细分。留了 30 字安全余量取 120 而不是 150防止标点编码出幺蛾子。import re def split_text(text, max_len120): sentences re.split(r(?[。]), text) chunks, buf [], for s in sentences: if len(buf) len(s) max_len: buf s else: if buf: chunks.append(buf) while len(s) max_len: cut s.rfind(, 0, max_len) cut cut if cut 0 else max_len chunks.append(s[:cut 1]) s s[cut 1:] buf s if buf: chunks.append(buf) return chunks分完句逐段调 TTS拿到 mp3 二进制。有 ffmpeg 就无损拼接成单个文件没有就留分片。mp3 帧天然支持顺序拼接不做重编码也能正常播。4. 端到端验证从涂鸦到有声童话跑通4.1 验证 VITA 读画先单独测 VITA确认 Key 和模型都通。准备一张孩子的画跑上面那段 analyze_drawing看返回的 JSON 结构对不对。重点检查 elements 数量和 story_hints 有没有内容。如果返回 401说明 TaoToken 的 Key 没配对如果返回模型不存在检查 settings.json 里的 model 名是不是 youtu-vita。4.2 验证 TTS 合成TTS 单独测一段短文本确认音色和语速。智瑜101001温柔但不做作语速调到 0.85 倍速更有睡前氛围。我试过智旭101003沉稳男声适合冒险类故事但睡前用太正经了智婕101005活泼女声适合白天互动睡前太嗨。def synthesize(text, secret_id, secret_key, voice_type101001, speed0.85): import tencentcloud.tts.v20190823.tts_client as tts_client from tencentcloud.tts.v20190823 import models from tencentcloud.common import credential cred credential.Credential(secret_id, secret_key) client tts_client.TtsClient(cred, ap-guangzhou) req models.TextToVoiceRequest() req.Text text req.VoiceType voice_type req.Speed speed req.Codec mp3 resp client.TextToVoice(req) return resp.Audio # base64 编码的 mp34.3 全链路跑通在 WorkBuddy 里把三步串起来。晚上八点半闺女刚画完一张画我拍照发过去打一行字“把这张画变成故事主角叫小满五岁。”WorkBuddy 识别到“把画变成故事”这个触发词自动激活 kid-art-storyteller Skill先确认音色偏好然后开始跑流程。大概十几秒VITA 读完了。我看到这张画里的世界一个大大的太阳在左上角一朵蓝色的云在右上角中间是一座棕色小房子有两扇不同颜色的窗户房子右边有一棵绿色大树树下开着两朵小花房子前面站着两个人手拉着手。我闺女凑过来看了一眼指着“手拉手的两个人”说“这是我跟妈妈”我说那爸爸呢她说爸爸在里面拍照。然后 WorkBuddy 开始写故事等了五六秒故事出来了标题叫《太阳盖被子》。开头是“太阳打了个大大的哈欠把金色的光轻轻铺在小满家的屋顶上。小房子醒了两扇彩色窗户一睁眼红一格黄一格像两块正在发光的糖。”我念给她听听到窗户像糖的时候她突然打断我“窗户真的是糖做的吗”我说在故事里是的。她想了想说“那我可以吃吗”最后 TTS 配音智瑜音色把整篇故事合成 mp3。声音温柔、节奏慢是那种你会想关了灯、躺在床上听的调子。我放给她听听到“月亮把被子拉上来盖住了整个小院子”的时候她已经睡着了。5. 本篇常见错排查5.1 VITA 返回 401 或鉴权失败最常见的原因是 TaoToken 的 Key 没配对或者请求头里 Authorization 格式写错了。检查 settings.json 里 taotoken.api_key 是不是完整的 sk- 开头字符串请求头是不是 Bearer 加空格加 Key。如果 Key 没问题检查 base_url 是不是 https://taotoken.net/api 别多写或少写斜杠。5.2 TTS 报 AuthFailureTTS 走的是腾讯云原生 SDK用的是 SecretId 和 SecretKey不是 TaoToken 的 Key。这两个别搞混。AuthFailure 一般是 SecretKey 复制的时候多了空格或者 SecretId 和 SecretKey 配错了对。到腾讯云访问管理控制台重新生成一对粘到 settings.json 里。5.3 故事超长导致 TTS 截断TTS 单次 150 字上限如果没做分句直接整篇丢进去会被截断。检查 speak.py 里的 split_text 有没有生效max_len 是不是设成了 120。如果分句后还是报错打印一下每个 chunk 的长度看看是不是有超长句子没被切开。5.4 识别元素和画明显不符VITA 偶尔会识别错恐龙变鳄鱼、小花变蘑菇。这种情况不是报错而是把 VITA 的结果给孩子看让孩子来“纠错”然后把纠错后的结果并入故事。这个设计我挺得意的——适度的“不完美”反而创造了亲子互动的机会。孩子纠正 AI 的过程本身就是一段对话、一段游戏。5.5 WorkBuddy 没触发 Skill如果发了“把画变成故事”但 WorkBuddy 没反应检查 SKILL.md 是不是放在 skill/kid-art-storyteller/ 目录下触发词有没有写对。SKILL.md 里我还写了一张故障处理表VITA 报 401 怎么办、TTS 密钥没配对怎么办、故事超长怎么办都列了。6. 继续往下走把链路接进你的工作流这条链路跑通之后你会发现两个 Skill 的组合空间比想象中大。VITA 当眼睛TTS 当嗓子中间那个 Agent 大脑负责把看到的东西编成故事。同样的两块积木换个拼法就能做完全不同的事——老照片识别加口述历史朗读、冰箱食材识别加菜谱语音播报、旅行照片识别加有声日记生成。如果你主要做排障和接入建议先把 TaoToken 的 API Key 配好接入文档在 https://taotoken.net/doc 有完整的参数说明。想先验证模型效果可以直接在模型对话里试 https://taotoken.net/models 上传一张画看看 VITA 返回什么。如果是长期做编码和 Agent 开发Coding Plan 更适合 https://taotoken.net/coding-plan Key 管理和额度都集中在一处。API Keys 在 https://taotoken.net/api-keys 生成控制台在 https://taotoken.net/console 。ClaudeCodeAnthropic 相关的接入配置在 https://taotoken.net/claudecode-anthropic 有说明。我家闺女的画现在散落在各个抽屉里有些已经找不到了。如果每一张画都能存下来配上一段故事和一段声音多年以后翻出来——是她五岁时画的恐龙AI 编的故事她听到一半睡着的那个晚上。这把一个技术 Demo 变成了一份可以留住的东西。有天晚上她问我“你能不能每天晚上都给我讲故事”我说行。然后那天晚上我没讲放了 AI 念的《太阳盖被子》给她听。她听到一半就困了但睡着之前说了一句“太阳真的会盖被子吗”我说会的。她说“那月亮呢”“月亮负责盖。”她没再说话。我以为她睡着了过了大概三十秒黑暗里传来一句“那星星呢”我没答上来。但我想也许下一张画里会有星星。VITA 会看到它Agent 会给它编一个关于星星盖被子的故事TTS 会用温柔的声音念出来。而我会躺在她旁边听着这个故事跟她一起睡着。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

用 TaoToken 统一通道复现 CoT Collection:Zero-shot 与 Few-shot 推理配置骨架 2026/9/26 12:25:15

用 TaoToken 统一通道复现 CoT Collection:Zero-shot 与 Few-shot 推理配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AI Agent后端开发入门指南:小白也能进大厂,从0到1掌握核心技能 2026/9/26 12:25:15

AI Agent后端开发入门指南:小白也能进大厂,从0到1掌握核心技能

本文详细解析了AI Agent后端开发的岗位需求,指出企业更看重工程化能力和落地能力而非纯算法知识。文章拆解了四大核心能力模块:企业级Agent架构研发、RAGAgent工程化落地、复杂系统架构以及后端性能调优与稳定性治理。同时,提供了三阶段学习路…

阅读更多 →
libuuid使用指南:编译安装、UUID生成API、线程安全与性能避坑 2026/9/26 12:25:08

libuuid使用指南:编译安装、UUID生成API、线程安全与性能避坑

简介:libuuid-1.0.3.tar.gz 是面向 Linux/Unix 系统开发者的 UUID 库源代码包,用于生成、解析、比较和格式化符合 RFC 4122 标准的全局唯一标识符,适用于分布式系统、数据库记录、文件命名等场景。对于需要生成全局唯一标识的 C/C 项目&#…

阅读更多 →
小白也能看懂的大模型如何赋能农作物防害智能管理 2026/9/26 12:25:08

小白也能看懂的大模型如何赋能农作物防害智能管理

文章介绍了AI Agent在农作物防害中的应用,通过自主监测识别、风险预判预警、智能防控决策、农田辅助管控、灾情处置等环节,构建全链条智能防控体系,推动农作物防害治理从人工被动处置转向智能主动预判,提升效率,降低损…

阅读更多 →
2026年降AI率工具避坑指南:TaoToken统一Key接入10款主流工具的配置清单 2026/9/26 12:25:08

2026年降AI率工具避坑指南:TaoToken统一Key接入10款主流工具的配置清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Atlas 300V 24G部署YOLO全流程:从硬件到推理优化 2026/9/26 12:25:01

Atlas 300V 24G部署YOLO全流程:从硬件到推理优化

从标题“atlas”出发,这篇文章我想聊聊一个非常具体的东西:在Atlas 300V 24G这张运算加速卡上,把YOLO目标检测模型部署到生产环境的完整过程。热搜里那句“atlas 300v 24g 是运算加速卡吗”,可以很直接地回答——是的,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉