Megaview Coach 的演讲课程模块,让销售团队通过 AI 驱动的演讲练习和互动问答,系统性地提升表达能力与客户沟通技巧。从课程创建到练习评分,全流程智能化。
演讲课程是 Megaview Coach 的三大练习模式之一,专为需要面对客户进行正式演讲的销售场景设计。
从管理员建课到学员练习再到报告生成,一条完整闭环。
管理员通过对话式 AI 助手快速创建演讲课程,或手动编辑课程参数。
课程生成器采用左右双栏布局:左侧为课程编辑区,右侧为 AI 对话面板。支持编辑/预览两种模式切换,预览模式下可直接体验练习流程。
在右侧对话面板中,管理员可以用自然语言描述课程需求,AI 会流式生成课程配置(描述、评分维度、互动阶段等),生成完成后自动填充到左侧编辑区。生成过程中可实时预览 AI 输出。
| 配置项 | 说明 | 取值范围 |
|---|---|---|
| 选择语言 | 练习时的 ASR 和 TTS 语言 | 中文 / 英文 |
| 演讲时长上限 | 超过后自动结束演讲阶段 | 1 – 180 分钟 |
| 演讲时长下限 | 不足则评分无效 | 0 – 180 分钟 |
| 互动时长下限 | 不足则互动评分无效 | 0 – 180 分钟 |
| 开启摄像头 | 练习时要求开启摄像头 | 开 / 关 |
| 防作弊 | 摄像头监控,检测异常行为 | 开 / 关 |
| 关键点评分模式 | 未触发关键点时的评分策略 | 满分 / 不给分 |
| 评分标准提示 | 是否向学员展示评分标准 | 隐藏 / 仅指标 / 指标 + 要点 |
互动阶段使用 Markdown 编辑器定义 AI 客户在互动环节中的提问方向和策略。编辑器支持自动高度、失焦自动保存。
每个课程可配置 AI 客户角色,包括:头像、沉默视频(待机动画)、说话视频(对话动画)、人设描述、开场白。角色定义决定了互动阶段 AI 的语气和追问风格。
学员进入练习后,面对的是一个三栏布局的沉浸式练习环境。
左栏 · 课程侧边栏(320px,可折叠)
中栏 · PPT 展示区
右栏是练习的核心交互区域,从上到下依次为:
学员面对 PPT 进行自由演讲,系统实时转写语音为文字。
asr_result 消息(partial → final),对话区实时显示转写文字。plan_countdown 倒计时警告。asr_degrade,前端隐藏实时字幕并显示生成动画提示,但录音继续。最终结果在 is_last=true 时一次性返回。plan_revise_sales_saying 对已转写的文本进行修正,前端原地更新对应句子。anti_cheat_enabled 时,练习初始化阶段会请求摄像头权限,练习全程监控摄像头画面。VideoCall 组件中本地视频始终可见,确保学员在镜头前完成演讲。
演讲结束后进入互动环节,AI 客户基于课程配置的角色和互动阶段进行提问。
学员点击"互动"按钮或演讲时长达到上限后,系统检查最低演讲时长。时长不足时弹出确认对话框(3 秒倒计时后可强制提交),时长充足则发送 plan_interaction_start 进入互动模式。
plan_message(status: 1 开始 → 2 流式 → 3 完成),AI 角色的问题以"客户"身份出现在对话区。同时 TTS 音频通过 plan_tts_result 返回,VideoCall 切换到 AI 说话动画。plan_message(用户内容),AI 接收后生成下一轮回复。三级评分结构:维度 → 指标 → 要点,支持关键点触发评分模式。
| 层级 | 说明 | 示例 |
|---|---|---|
EvaluateDimension |
评分维度,最高层级 | 表达能力、内容完整性、互动应对 |
EvaluateMetric |
维度下的具体指标,带权重 | 语言流畅度(权重 0.3)、逻辑结构(权重 0.2) |
Gist |
指标下的关键要点 | 是否使用数据支撑观点、是否回应客户疑虑 |
课程创建者可以控制学员在练习前能看到多少评分信息:
演讲课程模块的技术实现要点。
index.tsx 只负责渲染,所有状态和业务逻辑集中在 useSpeechPageLogic 编排 Hook 中,下辖 7 个子 Hook。handlersRef(可变引用对象)存储处理函数来打破。recorder-core 库(非浏览器原生 MediaRecorder),本地编码 MP3(16kHz/16bit),WebSocket 传输原始 PCM(Float32Array)。asr_result(partial/final)→ 前端实时渲染文字。60 秒静默超时(错误码 5000/5005)触发异常对话框。plan_tts_result 的 seq 字段实现分段流式 TTS,前端按序拼接播放列表,与 VideoCall 的 AI 说话动画同步。recordingPromiseResolve),等待最终 ASR 结果到达后 resolve,确保状态转换干净。postMessage(PRACTICE_COMPLETE / EXIT_PRACTICE / NAVIGATE)实现父子通信。course_config_stream 命令,接收 AI 流式生成的课程内容,逐步更新 UI,最终加载结构化数据。| 平台 | 接入方式 | 说明 |
|---|---|---|
| Web 端 | 路由 /speech-practice |
独立页面,RequireCoachSession 守卫 |
| 课程生成器 | 路由 /speech-course-generator |
独立页面,含编辑/预览模式 |
| Bot 应用 | iframe 嵌入 | iframe-public-speaking 组件,postMessage 通信 |
| 桌面端 | Tauri 2.x WebView | 共享 Web 代码,原生窗口 |
| 路径 | 职责 |
|---|---|
pages/SpeechPractice/ |
练习主页面 + 组件 + Hooks + 类型 + 工具函数 |
pages/SpeechCourseGenerator/ |
课程生成器 + 设置表单 + 互动编辑 + 预览 |
api/modules/speech.ts |
13 个 API 端点(创建/更新/配置/评分/音频) |
utils/courseType.ts |
课程类型路由映射(type 9 → /speech-practice) |
bot/components/iframe-public-speaking/ |
Bot 端 iframe 封装 |