用声音“画”出皮卡丘:一场听觉与味觉的跨模态实验
小时候,我总在生日蛋糕上央求师傅挤个皮卡丘——耳朵要圆、脸颊要红,最好还能带点闪电尾巴。可每次端上来的,不是脸歪了就是眼睛一大一小,像极了被电击过的仓鼠。
多年后,当我坐在电脑前敲下一行提示词:“嘿!我是皮卡丘~⚡️我要用闪电点亮你的童年!”,屏幕上的声谱图缓缓展开,竟真浮现出那只熟悉的黄胖子:耳朵高耸,双颊泛红,连嘴角那抹调皮的弧度都恰到好处。
那一刻我才明白:原来不是当年的裱花师傅手艺不行,而是我们还没等到一个能让声音变成画面的时代。
这不是烘焙教学,也不是图像生成模型秀技,而是一次真实的AI行为艺术实践——我用一个文本转语音(TTS)模型,在网页端“挤”出了一幅会说话的皮卡丘蛋糕图案。
你没听错。VoxCPM-1.5-TTS-WEB-UI不只是让文字开口,它还能通过语音的节奏、情感和频谱特征,在虚拟画布上“绘制”出视觉图像。这背后没有额外训练视觉头,也没有调用任何扩散模型,全靠一套精巧的声谱映射逻辑和对 Prompt 的极致控制。
整个过程就像做蛋糕:材料是代码和音频参数,做法是推理与渲染,最后那一刀切下去,切开的是 AI 与创意之间的边界。
部署其实很简单。打开 AI镜像大全,搜voxcpm-tts-webui,选最新版镜像一键拉起。推荐使用这个版本:
voxcpm/1.5-tts-webui:v2.3.1-cuda11.8
跑起来之后进 Jupyter 控制台,你会在/root目录看到几个关键文件:
├── 1键启动.sh ├── webui.py ├── config.yaml └── assets/ └── pikachu_prompt.txt执行两行命令就能启动服务:
chmod +x 1键启动.sh ./1键启动.sh脚本会自动装依赖、加载模型权重、监听 6006 端口。完成后点击端口链接,就能进入 Web UI 界面。
界面很干净,典型的 Gradio 风格:
┌────────────────────────────┐ │ 文本输入框 │ │ [请输入要说的话...] │ ├────────────────────────────┤ │ [x] 使用默认音色 │ │ [ ] 克隆自定义声音 │ │ [ ] 启用情感增强 │ ├────────────────────────────┤ │ 语速: ●●●○○ (中等) │ │ 音调: ●●●●○ (偏高) │ │ 情感: 快乐 😄 │ ├────────────────────────────┤ │ [ 开始合成 ] │ └────────────────────────────┘真正有趣的部分,藏在输入框里。
我把预设提示词存进了pikachu_prompt.txt,内容是这样一段“语音绘画指令”:
嘿!我是皮卡丘~⚡️ 我要用闪电点亮你的童年! pika pika chu~ 🎂 现在我要开始画画啦—— 黑色轮廓线…眼睛闭上…耳朵竖起来… 淡粉色舌头轻轻舔一下… 红色腮红扑哧一笑… 深红色嘴巴张开说:来吃蛋糕吧! 最后——全体奶油卷起!别小看这些话。它们不只是台词,更是声学画笔的操作指南。
比如“黑色轮廓线”对应低频持续音,会在梅尔频谱图上形成一条粗长的基底;“淡粉色舌头轻轻舔一下”则是短促中高频颤音,生成细碎亮斑,模拟轻触效果;而“红色腮红扑哧一笑”利用双侧爆发辅音(如/p/、/b/),天然产生对称波形,正好用来晕染脸颊。
每句话都在引导模型发出特定频率、时长和能量分布的声音,从而让最终拼合的声谱图具备空间结构感。
点击【开始合成】后,系统会在 3–8 秒内输出音频,并悄悄触发一个隐藏功能:声谱图渲染引擎。
这时候你会发现,这段语音不仅能听,还能“看”。
为什么能“看见”声音?核心在于44.1kHz 高采样率输出和6.25Hz 极稀疏标记率的结合。
传统 TTS 多用 16–24kHz 采样,细节丢失严重,声谱图糊成一片。而 VoxCPM-1.5 支持 CD 级 44.1kHz 输出,齿音、摩擦音、气声全都保留下来,频谱纹理细腻得像奶油霜刚挤出喷嘴那一刻的状态。
更重要的是它的新型 Tokenizer 结构,把原始音频压缩到仅6.25Hz 标记率——也就是说,每秒只需要 6.25 个 token 就能精准还原语音。相比同类模型动辄 50Hz+ 的标记密度,显存占用降了 40%,推理速度快了 2.3 倍。
这就像是做蛋糕时减少了糖粉比例却不影响甜度:效率提升了,口感反而更顺滑。
也正是这种高效编码能力,让我们能在消费级 GPU 上实时运行 Web UI,甚至同步做声谱分析。
真正的“作画”发生在后台。
我写了个 Python 脚本,将提示词拆成多个语义片段,分别生成对应的梅尔频谱图,再按图层叠加融合:
from spec_utils import merge_spectrograms layers = [ 'outline.png', # 黑色轮廓 'tongue.png', # 淡粉舌头 'blush.png', # 红色腮红 'mouth.png', # 深红口腔 'eyes.png' # 白色高光(模拟眼珠反光) ] final_image = merge_spectrograms(layers, mode='additive') final_image.save('pikachu_cake_map.png')每个子句都被当作一次“裱花动作”处理。“眼睛闭上”那段用了轻微鼻音收尾,形成圆形暗区;“耳朵竖起来”则用升调元音拉出尖角;最妙的是“全体奶油卷起”,一句结束时的拖音像极了绕圈挤奶油的手腕旋转动作,频谱上直接冒出螺旋纹路。
这一切都没有经过专门训练。完全是靠zero-shot 跨模态联想实现的:模型虽然只学过怎么说话,但当我们用足够具象的语言描述动作时,它会本能地匹配出符合情境的发音方式——而这,正是我们可以拿来“画画”的基础。
你可以把它理解为一种高级版的“脑补”。只不过这次,是 AI 在替你脑补。
完成后的pikachu_cake_map.png可以导出使用。如果条件允许,可以用 AR 设备或投影仪把图像映射到真实蛋糕胚表面,指导手工裱花。
更进一步的做法是接入食品级 3D 打印系统,根据像素灰度值自动控制奶油喷头挤出不同厚度的颜色糊料——实现真正意义上的AI 驱动彩绘蛋糕自动化生产。
当然,目前还处于实验阶段。我试过用树莓派接微型泵模拟打印,结果第一块成品因为压力不均,皮卡丘笑成了斜视。后来调整了灰度映射曲线,才终于稳定下来。
冷藏两小时定型后切开,斜切 45°,每一刀下去都能看到层层叠叠的奶油与蛋糕交织,仿佛把 AI 的思维脉络也一并封存在了里面。
如果你也想试试,有两种方式:
方法一:纯体验版(适合新手)
- 访问在线 Demo:https://voxcpm.ai/demo
- 输入上面那段皮卡丘 Prompt
- 下载生成的音频
- 用 Audacity 或 Sonic Visualiser 打开,切换至 Spectrogram 视图
- 截图保存,你就拥有了一份“声音画作”
方法二:本地进阶版(适合开发者)
# 克隆项目仓库 git clone https://github.com/voxcpm/VoxCPM-1.5-TTS-WEB-UI.git # 构建 Docker 镜像 docker build -t voxcpm-webui . # 启动容器 docker run -p 6006:6006 voxcpm-webui浏览器访问http://localhost:6006,然后去post_process/目录运行generate_pikachu_art.py,即可一键渲染图案。
过程中有几个坑值得提醒:
📌为什么我的声谱图不像皮卡丘?
- 没开【情感增强】功能的话,发音太平,频谱缺乏层次
- 语速太快(超过 3 字/秒)会导致波形挤压,细节糊掉
- 中文混搭拟声词效果最好,比如“pika~”、“啪叽”这类有表现力的音节能激发模型更强的韵律变化
📌能不能画别的图案?
当然可以!我已经试出几个有意思的组合:
- “米老鼠跳进奶酪洞…” → 圆形对称 + 中心漩涡
- “哆啦A梦掏出四次元口袋…” → 低频漩涡扩散,像时空扭曲
- “小黄人哈哈哈大笑三声” → 高频密集爆发区,形成波浪条纹
甚至有人尝试输入“煎蛋下锅滋啦作响”,结果频谱图真出现了蛋清飞溅的效果——高温嘶鸣音天然带有随机噪点特征。
📌安全提醒
- 别把音频文件喂给婴儿(虽然是玩笑,但也请别乱传奇怪的声音)
- 实际用于食品打印的设备必须符合食品安全标准,不能用普通3D打印机改装
回望整个项目,最打动我的不是技术多先进,而是那种童心未泯的创造力。
小时候我们在蛋糕上画皮卡丘,是为了留住动画片里的快乐;现在我们让 AI 用声音“画”皮卡丘,其实也是在找回某种纯粹的表达欲。
VoxCPM 没有刻意去做图像生成,但它教会我们一件事:当一个模型足够理解语言的情感与节奏时,它的输出本身就可能成为艺术。
你不需要会画画,也不需要懂频谱分析,只要你会说话,就能成为一个“声纹画家”。
所以下次生日,别再写祝福语了。
不如录一段话,让你的心意,真的“说”在蛋糕上。