我用声网对话式 AI 跑通第一个语音智能体:先用模板,再做一个冰雪公主故事机
我之前以为做语音智能体得分别处理语音识别、聊天模型、语音合成和音频传输。真正动手后才发现第一次验证想法没必要先把三套服务拼起来。声网对话式AI把这些能力放进了一个配置页我先用默认资源跑通对话再把它改成一个给闺女讲故事的冰雪公主伙伴。这篇不准备讲一套很大的架构也不打算把它包装成“几分钟上线产品”。我只是把自己的顺序记下来先确认语音链路是否通再改角色和提示词最后把控制台里的智能体放到一个独立网页里。这个顺序对第一次接触语音智能体的人比较友好因为每一步都有可以验证的结果出了问题也知道该回到哪里排查。先说明边界在声网对话式AI 的预览阶段我没有单独配置三方模型的 API Key接入自己的 Web 页面时仍然需要在服务端保存 App Certificate用它生成短期 Token。图1 声网对话式AI 内置的 LLM、TTS 和 ASR 资源第一步创建项目并开通服务首先需要先注册声网然后在 Console 控制台完成实名认证后创建了一个名为 FirstDemo 的项目再到“对话式 AI 引擎”中开通服务。项目是后续配置、发布和调用智能体的必备条件。刚进入控制台时我先创建的是通用项目并选择了 1v1 语音场景。这里不用把项目名想得太复杂后面创建的智能体都可以关联到同一个项目。服务开通后控制台会出现对话式 AI 引擎的入口用户可以通过其中的声网对话式AI引擎用无代码的形式快速构建自己的语音智能体。如果没有先选中项目后面的创建和发布步骤很容易找不到归属。图2 创建项目第二步先从官方模板理解配置进入声网对话式 AI 后我没有从空白开始而是选择了“宝宝故事机-卡皮卡”模板。编辑页分为基础设置、模型与语音、通话调优和高级配置。基础设置里能填写开场白和提示词模型与语音页则能选择 ASR、LLM 和 TTS 资源。图3 进入 声网对话式 AI 引擎图4 选择官方故事机模板图5 智能体编辑页我先沿用默认的语音识别、通义千问 Plus 和豆包语音合成资源。第一次体验时先确认整条链路能对话比一开始就在模型和音色间反复切换更重要。这个模板对我最大的帮助不是直接拿来当产品而是把一份可运行配置摊在眼前ASR 负责把说话内容变成文字LLM 决定回复什么TTS 负责把回复读出来。控制台把这几块都列出来了我至少能知道一次语音对话里有哪些环节。后面如果想换模型、音色或识别服务也不会只知道“效果不对”却不知道应该从哪里改。第三步在控制台预览先确认它真的能说话允许浏览器使用麦克风后预览区显示已连接。我说完话卡皮卡能继续回答并播放语音。这里我重点观察两件事它会不会抢话以及停顿会不会让人等得不耐烦。我的体感是对话节奏自然适合继续往下做。预览页让我先把“配置是否生效”和“应用怎么接入”分开了。前者在声网对话式 AI 引擎里就能验证开场白有没有按设定说、模型是否正常回复、麦克风权限是否可用。只有这里的对话已经顺了再做网页接入才有意义。否则网页里听不到声音时很难判断是前端音频、Token还是智能体配置出了问题。图6 控制台内的语音预览第四步做一个冰雪公主故事伙伴模板跑通后我从“创建智能体”里选择“从空白开始”关联同一个 FirstDemo 项目。这样卡皮卡模板还在新的故事伙伴可以单独调试和发布。我把内部角色设为“艾莎公主故事机”。在结构化提示词里写了前言、基本设定、主要功能、互动指南和示例回应用适合儿童理解的短句说话围绕冰雪冒险、动物朋友、友谊和睡前故事展开讲故事时留一个选择孩子要求换主题、暂停或重讲时直接配合。提示词里也明确不询问姓名、住址、学校等隐私信息遇到不适合儿童的话题就引导孩子找爸爸妈妈。我没有把提示词写成一大段角色设定而是拆成几个小区块。前言负责告诉它这次扮演谁基本设定限定语气和词汇主要功能只保留讲故事、一起编故事和回答简单问题互动指南约束它别连续追问也别把故事讲成说教。这样调试时改一项就够了。比如故事太长我会改“默认 2 到 4 分钟”如果它总是替孩子做决定就把“关键处给出两个选择”写得更明确。我还给了一个开场白“你好呀我是艾莎。今天想听一个冰雪王国的故事还是想和我一起编一个新的冒险你可以告诉我主角、地点或者直接说‘你来决定’。”这句话不追求像电影台词重点是孩子一打开页面就知道该怎么开始说。图7 冰雪公主故事机的配置为了让声音更贴近角色气质我换了一个偏甜美的豆包音色zh_female_tianmeixiaoyuan_moon_bigtts。音色只是第一步真正影响体验的还是开场白、故事长度和能否接住孩子临时改变的剧情。图8 冰雪公主故事机预览第五步发布智能体但它不会自动变成公开网页我一开始以为“发布”会生成一个可分享的智能体链接。实际操作后才明白它更像把当前配置发布为项目内可管理的版本系统会检查服务状态并记录版本发布结果会给出 Pipeline ID。这个区别一开始很容易忽略。声网对话式 AI 引擎里的预览是在编辑器里直接试当前草稿发布后得到的 Pipeline ID才是一份可以被应用调用的稳定配置。以后我改了提示词或音色仍然要重新发布应用下一次启动会话时才会用到新版配置。它不是公开智能体广场也不会自动生成一个给孩子直接点开的聊天链接。图9 发布智能体Pipeline ID 指向已发布的提示词、模型和语音配置。Code Example 则是服务端启动一次运行中智能体的示例让它加入 RTC 频道并返回本次会话的agent_id。它不是现成的网页聊天页面。我后来把这几个 ID 的角色理顺了App ID 标识声网项目Pipeline ID 指向发布后的智能体配置agent_id则只对应某一次正在运行的会话。理解这一点后Code Example 里为什么既有频道又有 Token 和智能体 UID就不那么绕了它是在为一场具体的实时语音会话准备运行环境。图10 发布后的 Pipeline ID。截图中的 App ID、Pipeline ID 等字段应打码。第六步一个最小 Web Demo我用 Node 写了一个只有“开始故事、静音、结束对话”和实时字幕区的页面。点击“开始故事”后服务端读取AGORA_APP_ID、AGORA_APP_CERTIFICATE和AGORA_PIPELINE_ID前两个用于生成短期 RTC RTM Token最后一个用于指定本次会话采用哪套已发布的智能体配置。这里我特意没有把 App Certificate 或任何 Token 写进浏览器代码。浏览器只从自己的服务端获取短期 Token再加入 RTC 频道签名和启动智能体的请求都留在 Node 服务端。开发时把这些变量放进.env.local提交代码前确认这个文件没有进仓库。这一步看起来和故事内容无关却是把控制台 Demo 变成真实应用时最容易踩的坑。随后服务端调用创建智能体接口把pipeline_id、频道和用户 UID 传进去前端加入同一 RTC 频道发布浏览器麦克风音频订阅并播放智能体的远端音频。为了接收字幕我开启了advanced_features.enable_rtm与parameters.data_channel: rtm并用客户端组件监听转写事件。它每次返回完整对话列表页面按最新列表重新渲染即可。网页第一次只播放出了声音字幕区一直空着。我回头看文档发现字幕不只是放一个空白区域还需要接收 RTM 事件并订阅消息。补上登录和订阅逻辑后页面才有机会接到用户转写和智能体回复。这个排查过程也提醒我能听到声音说明 RTC 音频通了看不到文字不等于智能体没回答更可能是字幕事件链路还没有接上。图11 本地 Web Demo艾莎公主故事时间已连接并显示智能体开场白字幕。我主要参考了声网的《使用 RESTful API 实现对话式 AI 引擎》和《实时字幕》。前者说明如何用pipeline_id启动会话后者说明字幕组件与 RTC、RTM 的关系。小结这次实践里声网对话式 AI 负责配置、调试和发布智能体Web 页面负责把它带到用户面前。对我来说模板的价值不在于替代所有开发而是让我先把一条能说、能听、能回应的链路跑通再决定哪些地方值得自己接管。现在故事机已经能离开声网对话式AI的预览面板运行。接下来我会让闺女多试几轮根据她是否愿意继续听、会不会频繁打断、是否能接住临时改剧情继续调整开场白和故事节奏。

相关新闻

深入理解es6-shim:从源码角度看ES6 API的polyfill技巧

深入理解es6-shim:从源码角度看ES6 API的polyfill技巧

深入理解es6-shim:从源码角度看ES6 API的polyfill技巧 【免费下载链接】es6-shim ECMAScript 6 compatibility shims for legacy JS engines 项目地址: https://gitcode.com/gh_mirrors/es6/es6-shim es6-shim是一个为旧版JavaScript引擎提供ECMAScript 6兼容…

2026/8/6 19:28:21 阅读更多 →
单片机毕设项目:基于 STM32 的水位传感器采集与分级 LED 指示控制系统设计 基于 STM32 单片机的多按键阈值配置智能水体管控系统(011802)

单片机毕设项目:基于 STM32 的水位传感器采集与分级 LED 指示控制系统设计 基于 STM32 单片机的多按键阈值配置智能水体管控系统(011802)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/6 19:28:21 阅读更多 →
【计算机毕业设计单片机案例】基于 STM32 的 DS18B20 水温检测与智能加热控制系统设计 基于 STM32 单片机的储水设备智能监测与定时提醒装置开发(011802)

【计算机毕业设计单片机案例】基于 STM32 的 DS18B20 水温检测与智能加热控制系统设计 基于 STM32 单片机的储水设备智能监测与定时提醒装置开发(011802)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/6 19:28:21 阅读更多 →

最新新闻

HsMod:炉石传说55项功能增强插件终极指南

HsMod:炉石传说55项功能增强插件终极指南

HsMod:炉石传说55项功能增强插件终极指南 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 你是否厌倦了炉石传说缓慢的游戏节奏?是否想要更个性化的游戏体验&#xf…

2026/8/6 20:15:39 阅读更多 →
MySQL JOIN操作原理与性能优化实战

MySQL JOIN操作原理与性能优化实战

1. MySQL Join操作的本质理解第一次接触MySQL的JOIN操作时,我误以为它只是简单的数据拼接。直到有次处理百万级数据表时遭遇性能灾难,才真正理解JOIN背后的复杂机制。JOIN本质上是关系型数据库实现数据关联的核心手段,其执行过程远比表面看到…

2026/8/6 20:15:39 阅读更多 →
从概念到实践:使用Atom Agent构建销售自动化工作流完整案例

从概念到实践:使用Atom Agent构建销售自动化工作流完整案例

从概念到实践:使用Atom Agent构建销售自动化工作流完整案例 【免费下载链接】atomic Atom Agent, Open-Source AI Agent Platform for Self-Hosted Automation 项目地址: https://gitcode.com/gh_mirrors/ato/atomic Atom Agent是一款开源AI自动化平台&#…

2026/8/6 20:15:39 阅读更多 →
2026超好用AI答辩PPT✨OKBIYE AI论文工具实测!答辩高分秘诀

2026超好用AI答辩PPT✨OKBIYE AI论文工具实测!答辩高分秘诀

毕业季最头疼的事,除了改论文降重,绝对就是毕业论文答辩PPT制作了😭! 很多同学熬夜排版、改配色、调逻辑,最后做出来的PPT还是杂乱无章、重点模糊,完全没有学术氛围感。试过十几款AI论文工具和AI论文软件后…

2026/8/6 20:15:39 阅读更多 →
DiffusionKit性能优化指南:低内存模式与16位精度设置提升Apple Silicon运行效率

DiffusionKit性能优化指南:低内存模式与16位精度设置提升Apple Silicon运行效率

DiffusionKit性能优化指南:低内存模式与16位精度设置提升Apple Silicon运行效率 【免费下载链接】DiffusionKit On-device Image Generation for Apple Silicon 项目地址: https://gitcode.com/gh_mirrors/di/DiffusionKit DiffusionKit是一款专为Apple Sili…

2026/8/6 20:15:39 阅读更多 →
TOON格式详解:AXI实现40%令牌节省的秘密武器

TOON格式详解:AXI实现40%令牌节省的秘密武器

TOON格式详解:AXI实现40%令牌节省的秘密武器 【免费下载链接】axi Design principles for agent ergonomics. Higher accuracy with lower token cost than both MCP and regular CLI. 项目地址: https://gitcode.com/gh_mirrors/axi2/axi 在AI代理开发领域&…

2026/8/6 20:14:39 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →