You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Bot Framework SDK开发的Cortana Skill为何无法朗读提示语?

解决Cortana Skill提示语不朗读的问题

完全可以实现Cortana朗读自定义提示语的功能,你遇到的问题大概率是因为返回给Cortana的消息没有正确配置朗读相关的属性。下面是具体的解决方法和代码示例:

核心原理

Cortana会优先读取Bot返回消息中的Speak属性内容来进行朗读,而不是默认读取显示用的Text字段。所以只要在回复消息时显式设置这个属性,就能触发语音朗读。

具体操作步骤

1. 为回复消息添加Speak属性

不管你用的是C#还是Python版本的Bot Framework SDK,都可以在构造回复消息时直接设置Speak字段,支持纯文本或SSML(语音合成标记语言)格式。

C# 示例代码:

// 基础纯文本朗读
var reply = MessageFactory.Text("请告诉我你的需求");
reply.Speak = "请告诉我你的需求";

// 或者用SSML实现更自然的朗读效果(比如停顿、语气调整)
reply.Speak = "<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='zh-CN'>请告诉我你的需求</speak>";

await turnContext.SendActivityAsync(reply, cancellationToken);

Python 示例代码:

# 基础纯文本朗读
reply = MessageFactory.text("请告诉我你的需求")
reply.speak = "请告诉我你的需求"

# SSML增强版
reply.speak = "<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='zh-CN'>请告诉我你的需求</speak>"

await turn_context.send_activity(reply)

2. 用SSML优化朗读体验

如果需要更自然的语音输出(比如添加停顿、强调特定内容),可以使用SSML标记来控制。举个例子:

<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='zh-CN'>
    <p>欢迎使用我的技能<break time='500ms'/>请问你需要什么帮助?</p>
</speak>

把这段代码放到Speak属性中,Cortana就会按照设置的停顿来朗读。

3. 卡片消息的特殊处理

如果你的回复是卡片(比如Hero Card、Adaptive Card),Cortana不会自动朗读卡片里的文本内容,需要单独在Activity的Speak属性中设置朗读内容:

var heroCard = new HeroCard
{
    Title = "欢迎界面",
    Text = "请选择你要执行的操作"
};
var reply = MessageFactory.Attachment(heroCard.ToAttachment());
// 手动设置Cortana要朗读的内容
reply.Speak = "欢迎使用我的技能,请选择你要执行的操作";
await turnContext.SendActivityAsync(reply, cancellationToken);

4. 检查基础配置

  • 确保你的Cortana技能发布配置中没有禁用语音输出选项;
  • 测试时确认设备的语音功能正常,Cortana音量未被静音;
  • 注意xml:lang属性要匹配你的技能语言(比如中文用zh-CN,英文用en-US),避免朗读语言不匹配的问题。

常见误区

  • 不要只设置Text字段而忽略Speak:Cortana不会默认朗读Text内容;
  • SSML格式要正确:如果标记写错,可能导致朗读失败,建议参考官方SSML规范编写;
  • 避免过长的朗读内容:太长的文本会影响用户体验,尽量拆分或精简。

按照上面的方法调整你的Bot回复逻辑,就能让Cortana正常朗读你设置的提示语了。

内容的提问来源于stack exchange,提问作者Bruno Alves

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 09:04:25