微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 AI说话时也能思考:微软推出SHANKS框架让语音模型学会"边听边想"

AI说话时也能思考:微软推出SHANKS框架让语音模型学会"边听边想"

2025-11-07 12:54
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2025-11-07 12:54 科技行者

这项研究来自国立台湾大学和微软公司的联合团队,由程正翰、王晓飞、李林杰等研究人员共同完成,并于2025年10月发表在人工智能领域的arXiv预印本平台上。感兴趣的读者可以通过论文编号arXiv:2510.06917查询完整论文。

当你和朋友聊天时,你不会等对方完全说完才开始思考对方在说什么,而是一边听一边思考,甚至在对方还没说完时就已经准备好了回应或者发现了对方话中的问题。但目前的AI语音助手却做不到这一点——它们必须等你完全说完话才开始"思考",然后再给出回应。这就像一个总是慢半拍的朋友,不仅反应迟钝,还会错过很多及时互动的机会。

研究团队就是想解决这个问题。他们开发了一个叫做SHANKS的新框架,让AI语音模型能够像人类一样"边听边想"。这套系统的全名是"Simultaneous Hearing and Thinking for Spoken Language Models",翻译过来就是"语音语言模型的同步听取和思考"。

这项研究的创新意义在于,它是首次让AI在用户还在说话的过程中就开始进行无声的思维推理。就好比给AI装上了一个"内心独白"的功能,让它能在倾听的同时暗自分析、计算和准备,而不是像木头人一样傻等着用户说完。

研究团队设计了两个非常有趣的应用场景来验证这个想法。第一个场景就像一个数学老师在监听学生解题过程,当学生犯错时能够及时打断并纠正。第二个场景则像一个高效的旅行助手,在你还没说完旅行需求时就已经开始查询相关信息,大大减少了等待时间。

一、SHANKS是如何工作的:把语音切成小段来处理

传统的AI语音系统工作方式就像一个只会听完整句子的翻译员。你必须完整说完一句话,它才开始翻译和思考,然后给出回应。这种方式在文字对话中还算可以接受,但在语音对话中就显得非常不自然,因为真实的人类对话充满了实时互动。

SHANKS的工作原理可以用看电视剧来类比。传统AI就像必须看完整集才能评论剧情的观众,而SHANKS则像那些会在看剧过程中不断发弹幕评论的观众——它会把你的语音按照固定时长(研究中设定为4秒)切成小段,每听到一段就开始"内心吐槽"和分析。

具体来说,当你开始说话时,SHANKS会在第一个4秒结束后拿到第一段语音,然后开始生成第一段"思考内容"。与此同时,你还在继续说第二段话。当第二个4秒结束后,它会基于前面听到的所有内容和之前的思考生成新的思考内容。这个过程会一直持续到你说完为止。

这种设计的巧妙之处在于,它充分利用了人类说话的时间。人类说话需要时间,而AI的思考速度通常比人类说话速度快得多。在研究中,一个7B参数的模型在单个A100 GPU上可以在4秒内生成大约320个思考标记,这已经足够进行相当复杂的推理了。

为了确保AI知道每段语音的状态,研究团队设计了特殊的标记系统。每段语音后面会加上特殊标记来告诉AI这是部分语音还是完整语音。思考内容则被包裹在特殊的思考标记中,这样AI就知道哪些内容是它的内心独白,哪些是需要说出来的回应。

这个过程最有趣的地方是,AI的思考是完全无声的——就像人类的内心独白一样,只有AI自己知道,用户听不到。只有当AI决定需要回应或打断时,才会将相应内容转换成语音输出。

二、第一个应用:数学老师AI能及时发现学生错误

研究团队设计的第一个应用场景就像给AI装上了一个敏锐的数学老师大脑。在这个场景中,用户会先描述一道数学题,然后开始一步步解答这道题。AI需要在用户解题过程中仔细倾听,一旦发现用户犯了错误,就要立即打断并指出问题所在。

这个应用的价值就像有一个24小时不疲倦的私人教师在旁边监督学习。传统的AI系统只能在学生完全说完解题过程后才能检查答案对错,而SHANKS则能在学生刚开始犯错时就及时提醒,避免错误越滚越大。

为了测试这个功能,研究团队构建了一个特殊的数据集。他们从GSM8K数学题库中选取了题目,然后让两个不同水平的AI模型(Llama-2-7B和Llama-3.1-8B)生成解题过程。由于这两个模型能力不同,前者经常生成错误答案,后者则更准确,这样就形成了正确和错误两类解题样本。

训练过程就像教导一个学生如何成为合格的数学监督员。研究团队让GPT-4o扮演"标准答案老师"的角色,教AI如何在听取部分解题过程时进行思考。这个思考过程包括追踪已知信息、计算中间变量,以及识别用户是否出现错误。如果发现错误,AI就会在思考中生成一个特殊的打断标记。

实验结果相当令人鼓舞。在错误解题样本中,SHANKS的打断率达到了84.8%,意味着它能发现绝大多数学生错误。更重要的是,在它做出的打断中,有63.9%是有效的——也就是说,它不仅能发现错误,还能准确指出问题所在。相比之下,不经过思考就直接打断的基准方法,有效打断率只有26.8%,证明了"思考再行动"的重要性。

值得注意的是,即使在正确解题的样本中,SHANKS也会有30.6%的打断率。深入分析后发现,这并不完全是误判,而是因为有些学生虽然最终答案正确,但中间过程可能存在表述不清或逻辑跳跃的问题,AI出于谨慎会要求澄清。

从打断时机来看,SHANKS平均在错误发生后5.08秒内做出打断,这个速度已经相当及时。研究团队还发现,当他们将处理时间从4秒调整到3秒或5秒时,系统表现并没有显著变化,说明这个框架具有一定的时间灵活性。

三、第二个应用:旅行助手AI能提前完成一半工作

第二个应用场景展示了SHANKS在实际任务中的巨大优势,就像拥有了一个能够未卜先知的旅行助手。当你开始描述旅行需求时,这个AI助手不会等你说完才开始查询,而是一边听你说话一边就开始调用各种API接口查询信息。

这个场景的设计基于一个现实问题:当前的AI助手在处理复杂请求时需要调用多个外部工具,比如搜索航班、查询酒店、获取天气信息等。传统方式下,所有这些API调用只能在用户完全说完需求后才开始,这就像一个效率低下的秘书,必须等老板把所有要求都说完才开始行动。

SHANKS改变了这种工作模式。当用户说"帮我查一下从杭州到首尔12月10日最便宜的航班"时,AI不需要等用户说完整个请求,在听到"杭州"和"首尔"时就可以开始查询机场代码,听到日期时就可以开始搜索航班信息。

研究团队使用了ComplexFuncBench数据集来测试这个功能,这个数据集专门用于评估AI处理多步骤API调用的能力。他们将数据集分成两半,一半用于训练,一半用于测试。训练过程中,他们让GPT-o1这个更强大的模型来判断每个API调用的最早可执行时间,然后据此构建训练数据。

实验结果显示了SHANKS的显著优势。在所有成功的API调用中,SHANKS能够在用户还在说话时完成56.9%的调用工作。这意味着,当用户说完需求时,AI已经完成了一半以上的后台工作,大大缩短了最终响应时间。

更具体地说,当用户说"帮我查看从杭州到首尔12月10日最便宜的航班详情,以及首尔机场附近的租车信息,我想在到达当天下午3点取车,一周后同一时间还车"时,SHANKS会这样工作:在用户说到"杭州到首尔"时就开始查询机场信息,说到日期时开始搜索航班,说到租车时开始查询租车地点,而不是等整个句子说完才开始这一系列查询。

当然,这种提前执行也带来了一些挑战。如果某个API调用在执行过程中失败了,SHANKS往往不会在后续的思考中重新尝试,这导致其任务成功率(35.2%)略低于传统的"听完再执行"方法(63.2%)。为了解决这个问题,研究团队提出了一个混合策略:在用户说话时使用SHANKS进行早期API调用,用户说完后再切换到传统方法处理剩余任务。这种组合方法既保持了高成功率(62.3%),又确保了超过60%的API调用能在用户说话期间完成。

四、技术细节:如何训练AI学会边听边想

训练SHANKS就像教一个学生学会一心二用的技能,既要专心听讲,又要同时在笔记本上记录思考过程。整个训练过程的核心是让AI学会生成有用的"无声思考"内容。

在数学打断任务的训练中,研究团队采用了一种渐进式的教学方法。他们首先让GPT-4o扮演"标准答案老师"的角色,给AI示范如何在听取部分信息时进行思考。这个过程包括几个关键步骤:追踪已知信息、计算中间结果、识别潜在错误,以及决定是否需要打断。

具体的训练数据构建过程就像制作一个标准化的教学视频。研究团队从数学题库中选取问题,让不同能力的AI模型生成解题过程,然后将这些过程转换成语音。接着,他们将语音按4秒间隔切分,并让GPT-4o为每个片段生成相应的思考内容。如果发现错误,思考内容的末尾会加上特殊的打断标记。

在API调用任务的训练中,挑战更加复杂,因为需要确定每个API调用的最早可执行时间。研究团队让GPT-o1分析用户语音的时间戳信息,判断在哪个时间点已经收集到足够信息来执行特定的API调用。这就像训练一个效率专家,让他知道在什么时候可以开始准备哪些工作。

训练过程中最巧妙的设计是如何处理API响应。由于API响应不是AI生成的内容,它们的长度不受4秒时间窗口限制。但API调用本身的参数必须在时间限制内生成完毕,这确保了实时性要求。

研究团队使用了两种不同的模型架构来验证SHANKS的通用性。第一种是端到端的语音模型Qwen2.5-Omni,它能直接处理语音输入并生成语音输出。第二种是级联模型,将语音识别系统Whisper与文本语言模型Qwen-2.5-7B结合使用。

为了确保AI只在思考标记内生成无声内容,研究团队对模型进行了特殊调整。在端到端模型中,只有思考标记外的内容才会被发送给语音合成模块。这就像给AI安装了一个"静音开关",让它知道什么时候该出声,什么时候该保持沉默。

训练的损失函数设计也很有讲究。研究团队只对AI生成的思考内容和最终回应计算损失,而API响应部分则被排除在外。这确保AI学会的是如何思考和决策,而不是如何记忆外部工具的响应格式。

五、实验结果:边听边想确实更聪明

实验结果清楚地证明了SHANKS的有效性,就像对比了一个专心听讲的学生和一个一心二用但更高效的学生的表现。

在数学打断任务中,最显著的对比是SHANKS与"不思考直接打断"基准方法的差异。不思考的方法就像一个过于敏感的警报器,在错误样本中只有13.8%的打断率,而且其中只有26.8%的打断是有效的。相比之下,SHANKS在错误样本中达到了84.8%的打断率,有效打断率高达63.9%。这个差异就像专业医生和普通人诊断疾病的准确率对比。

更有趣的是,当研究团队使用更强大的推理模型(SHANKS-Cascade)时,性能进一步提升。有效打断率从63.9%提高到78.3%,这说明SHANKS框架的表现很大程度上取决于底层模型的推理能力,就像同样的教学方法对不同智力水平学生的效果会有差异。

在打断时机方面,SHANKS平均在错误发生后5.08秒内做出反应,这个速度已经相当及时。研究团队还测试了不同时间窗口设置的影响,发现将4秒调整为3秒或5秒时,系统性能没有显著变化,证明了框架的时间鲁棒性。

在API调用任务中,SHANKS的优势更加明显。传统的"听完再调用"方法在所有成功API调用中,早期调用率为0%(因为必须等用户说完),而SHANKS的早期调用率达到56.9%。这意味着在用户说话期间,SHANKS已经完成了超过一半的后台工作。

但是,这种提前执行也付出了一定代价。SHANKS的任务成功率(35.2%)低于传统方法(63.2%),主要原因是失败的API调用很少在后续思考中被重新尝试。不过,当采用混合策略时,这个问题得到了很好的解决——组合方法的成功率达到62.3%,同时保持了57.3%的早期调用率。

研究团队还进行了一项有趣的消融实验,测试了不同语音块大小对性能的影响。他们发现,在3秒、4秒和5秒的设置下,系统表现相对稳定,但3秒设置下的打断延迟最短(1.56秒),而5秒设置下的有效打断率最高(66.2%)。这个发现为实际应用中的参数选择提供了重要参考。

六、技术局限性:SHANKS还面临哪些挑战

尽管SHANKS展现了令人印象深刻的能力,但它仍然面临一些重要的局限性,就像一个聪明的学生虽然能一心二用,但在某些方面仍有改进空间。

首先是时间延迟问题。由于SHANKS使用固定的时间块来处理语音,它的思考总是会滞后于用户的实际语音内容。如果用户的语音长度少于设定的时间块(比如4秒),SHANKS就无法进行边听边想,只能回到传统的"听完再想"模式。这就像一个需要最低工作量才能启动的机器,对于简短对话的处理效果有限。

其次是语音结构依赖性的问题。SHANKS要发挥最佳效果,需要用户的语音具有一定的结构性和足够的长度。用户需要按照相对线性的顺序提供信息,这样AI才能基于部分信息做出有意义的推理。如果用户的表达过于跳跃或者信息提供顺序混乱,SHANKS的提前思考可能就会变得无效甚至误导性。

第三个挑战是计算成本的大幅增加。虽然SHANKS在用户说话期间的思考不会增加最终的响应延迟,但它确实显著增加了推理期间的计算开销。每个语音块都需要生成思考内容,这相当于让AI在原有工作量基础上额外进行大量"内心独白"。对于需要大规模部署的应用来说,这种额外的计算成本可能是一个重要考虑因素。

第四个问题是目标不明确导致的冗余思考。当用户还没有完全表达完整需求时,AI很难准确判断用户的最终目标是什么,这可能导致生成的思考内容与最终任务不够相关。就像一个学生在没有看到完整题目时就开始解答,可能会在错误的方向上浪费精力。

在API调用任务中,还存在一个特殊的挑战:失败处理机制不完善。当某个API调用在早期执行时失败了,SHANKS往往不会在后续的思考中重新尝试,这降低了整体任务的成功率。这就像一个助手在第一次尝试失败后就放弃了,而不是寻找替代方案。

另外,当前的SHANKS实现还没有很好地处理用户可能的话题转换或需求变更。如果用户在说话过程中改变了想法或提出了新的要求,之前的思考内容可能就变得完全无关,但系统缺乏有效的"重置"机制来处理这种情况。

最后,模型的思考质量高度依赖于底层语言模型的推理能力。如果使用的是推理能力较弱的模型,生成的思考内容可能不够准确或有用,这时边听边想的优势就会大打折扣,甚至可能产生负面影响。

七、未来展望:这项技术将如何改变我们的生活

SHANKS代表的"边听边想"技术为AI交互开辟了一个全新的方向,就像从马车时代跨越到汽车时代一样,这种变革可能会深刻改变我们与AI系统的互动方式。

在教育领域,这项技术的应用前景特别广阔。设想一个AI数学老师,它能在学生解题过程中实时发现错误并及时纠正,而不是等学生完全做错了才指出问题。这就像有一个永不疲倦、极其耐心的私人导师随时在旁边指导。对于在线教育平台来说,这种技术能够提供更加个性化和即时的学习反馈,大大提高学习效率。

在客服和助手应用方面,SHANKS的影响可能更加直接。当用户描述复杂问题或需求时,AI助手不再需要等用户说完再开始思考解决方案,而是能够在倾听过程中就开始准备相关信息和可能的解决方案。这将显著减少用户等待时间,让AI交互变得更加自然流畅。

医疗咨询领域也是一个很有前景的应用方向。AI医疗助手在听取患者症状描述时,可以同时进行初步的诊断推理和信息查询,在患者描述完症状时就能提供更加及时和准确的建议。当然,这需要在严格的医疗安全框架内进行。

研究团队还提到了一个特别有趣的发展方向:将SHANKS与另一项并行研究STITCH结合。STITCH让AI在说话时也能思考,而SHANKS让AI在听取时就能思考。如果将这两种技术结合,就能创造出真正的"全时思考"AI系统——它们在对话的每个瞬间都在思考,无论是在听还是在说。

在技术改进方面,未来的研究可能会专注于解决当前的局限性。比如开发更灵活的时间窗口策略,让系统能够根据语音内容动态调整处理节奏,而不是僵硬地按照固定时间间隔。另外,改进失败处理机制也是一个重要方向,让AI在早期尝试失败时能够更智能地进行重试或寻找替代方案。

从更长远的角度看,这种技术可能会推动整个AI交互范式的转变。传统的"输入-处理-输出"模式可能会被更加动态和连续的交互模式所取代,AI系统将变得更像真正的对话伙伴,而不是简单的问答机器。

不过,这种技术的普及也需要考虑一些社会和伦理问题。比如,当AI能够在我们还没说完话时就开始"思考"我们的意图,这是否会让人感到不舒服或被监视?如何确保AI的这种"提前思考"不会导致误解或偏见?这些问题需要在技术发展过程中得到充分关注和解决。

从产业角度来看,SHANKS这样的技术可能会成为下一代AI产品的标准配置。那些能够实现真正实时、智能交互的AI系统将在竞争中占据明显优势。这不仅仅是技术上的进步,更是用户体验的根本性提升。

说到底,SHANKS的真正意义不仅在于技术本身的创新,更在于它向我们展示了AI系统可以变得多么像人类。当AI学会了边听边想,它就向真正理解和参与人类对话迈出了重要一步。虽然目前还有一些局限性需要克服,但这个方向的研究前景非常令人期待。随着技术的不断完善,我们可能很快就会拥有真正能够进行自然、流畅对话的AI伙伴,它们不仅能理解我们说的话,还能在我们说话的过程中就开始为我们着想和准备。这种技术进步最终将让人机交互变得更加自然、高效和愉悦,就像与一个真正聪明、体贴的朋友对话一样。

Q&A

Q1:SHANKS框架是什么?它是如何实现边听边想的?

A:SHANKS是微软和台湾大学开发的语音AI框架,全称是"语音语言模型的同步听取和思考"。它的工作原理是将用户语音按4秒间隔切成小段,每听到一段就开始生成无声的思考内容,同时用户继续说下一段话。这样AI就能在倾听过程中同步进行推理分析,而不是等用户完全说完才开始思考。

Q2:SHANKS在数学教学场景中表现如何?能替代真人老师吗?

A:SHANKS在数学打断实验中表现出色,能发现84.8%的学生错误,其中63.9%的打断是有效的,平均在错误发生后5秒内做出反应。但目前还不能完全替代真人老师,因为它主要擅长发现计算和逻辑错误,在情感支持、创造性引导和复杂概念解释方面仍有局限。它更适合作为辅助教学工具。

Q3:使用SHANKS技术会增加很多计算成本吗?

A:是的,SHANKS会显著增加计算开销,因为AI需要在用户说话期间持续生成思考内容,这相当于在原有工作基础上增加了大量"内心独白"。一个7B参数的模型在4秒内可以生成约320个思考标记。虽然这不会增加最终响应延迟,但对于大规模部署来说,额外的计算成本是需要考虑的重要因素。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-