解锁实时 AI 对话共同驾驶员功能,适用于您的手机
解锁手机上的实时AI对话协作助手。构建一个强大的工具,实时转录和分析对话,提供即时建议和反馈以改善沟通。借助这个AI驱动的助手,提升您的面试、会议和社交互动。
2025年2月15日

这篇博客文章探讨了一个实时AI对话协作助手的潜力,它可以协助完成诸如求职面试和用户研究等任务。作者展示了一款网页和移动应用程序的开发,该应用程序利用先进的语音转文字和语言模型提供即时转录和建议功能,突出了这种工具在增强沟通和生产力方面的好处。
实时 AI 对话协作助手简介
实时 AI 对话协作助手简介
差不多一年前,大约在2023年3月,当ChatGPT刚刚问世并成为全球最热门的话题时,我清楚地记得看到了Arony的一个演示,他构建了一个"面试破解器" - 一个帮助你通过面试的ChatGPT工具。这周,我构建了一个名为"面试破解器"的东西 - 一个使用ChatGPT制作的概念验证,用于破解面试。它会了解你之前的经验,倾听你与面试官的对话,并告诉你该说什么,填补你可能不知道的内容。
作为一名高级架构师,在确定后端服务的重点时,我优先考虑可扩展性。这种工具将会对面试过程造成严重破坏。通常,当这些大型技术出现时,如计算机或互联网,它们会改变之前出现的所有流程。这意味着,如果我们展望未来,一些这样的问题可能不再有意义。
我认为这是一个很棒的想法,因为当时我正在经历一些面试过程,所以我很想拥有一个可以实时帮助我通过面试的工具。我确实尝试过构建一个原型,它使用语音转文字模型生成文字记录,并使用大型语言模型生成答案,但在现实生活中,该原型从未很好地运作。这些实时面试或对话协作者的一个重要要求是必须具有低延迟和实时性。如果需要30-40秒才能生成一些结果,它就不会真正有用。不幸的是,这就是去年3月的情况,因为语音转文字模型和大型语言模型都需要很长时间进行推理。这在理论上是一个简单的项目,但在现实中很难构建一个可用的产品。
然而,几个月后,我看到了另一个产品展示了类似的场景,但性能几乎接近实时。在航空航天工程中,例如喷气发动机或航天器再入,你如何应对这些挑战?
构建实时转录和快速推理的挑战
构建实时转录和快速推理的挑战
构建实时对话伙伴的两个关键组件是:实时转录和快速推理。
实时转录
实现实时转录是最大的挑战之一。典型的语音转文字模型,如Whisper,并不是为流式场景而设计的,在这种场景中,音频是以小块而不是整个录音来处理的。
为了克服这一点,一个常见的解决方案是创建一个循环,不断捕获小的音频块(例如,每2-5秒一次),将它们发送到语音转文字模型,并将小的转录结果拼接在一起。这种方法需要进行优化以确保准确性,例如比较连接单词的时间戳以增强最终的转录。
幸运的是,语音转文字技术已经快速发展,现在有一些解决方案可以实现实时转录,例如在Replicate等平台上托管超快的模型,或者直接在移动设备上部署轻量级的Whisper Kit模型。
快速推理
第二个挑战是实现使用大型语言模型进行快速推理,以实时生成建议。为了解决这个问题:
-
选择一个快速和小型的语言模型:Meteo 7B等模型比GPT-4小得多,速度也更快,可以使用更少的计算资源快速生成响应。
-
减少输入大小:随着对话的延长,输入到语言模型的内容可能会变得太大。可以使用语言模型摘要技术,只提取相关信息,减小输入大小。
-
优化输出生成:还可以进一步优化,减少输出令牌数,例如使用提示工程方法。
通过结合实时转录和快速推理的技术,可以构建一个高度响应的实时对话伙伴,在对话过程中提供有价值的建议和支持。
构建基于 Web 的对话协作助手演示
构建基于 Web 的对话协作助手演示
要构建一个基于Web的对话协作演示,我们将使用Flask(一个Python Web框架)和Replicate(一个运行开源AI模型的平台)的组合。
关键组件包括:
-
实时转录:我们将使用Replicate上的一个快速语音转文字模型,生成对话的实时转录。这涉及不断捕获小的音频块,将它们发送到语音转文字模型,并将结果拼接在一起。
-
快速推理:我们将使用Replicate上的一个小型、快速的语言模型(如Minitram),根据转录内容实时生成建议和答案。我们还将探索减小输入大小和总结对话等技术,以提高速度。
Web应用程序将具有以下功能:
- 一个文本输入框,供用户提供对话的上下文。
- 一个"录制"按钮,用于启动和停止音频录制。
- 一个"获取建议"按钮,触发语言模型并获取建议。
- 实时显示转录内容。
- 显示生成的建议。
以下是逐步过程:
-
设置Flask应用程序:
- 创建
app.py
文件,导入必要的库,包括Replicate Python SDK。 - 定义用于索引页面和音频处理端点的Flask路由。
- 设置AWS S3存储桶和凭证,用于临时存储音频录制。
- 创建
-
实现实时转录功能:
- 使用Replicate Whisper模型持续捕获和转录音频块。
- 通过处理单词边界和维护块之间的上下文,优化转录。
-
实现快速推理功能:
- 使用Replicate Minitram(或类似的小型、快速语言)模型,根据完整的转录生成建议。
- 探索减小输入大小和总结对话等技术,以提高推理速度。
-
使用HTML和JavaScript构建前端:
- 在
templates
文件夹中创建index.html
文件。 - 定义包含文本输入、录制按钮和建议显示的HTML结构。
- 实现JavaScript逻辑,处理录制、音频上传和调用Flask后端API。
- 在
-
测试和部署Web应用程序:
- 在本地运行Flask应用程序并测试功能。
- 将应用程序部署到托管平台(如Heroku、AWS或您自己的服务器)。
通过遵循这些步骤,您将能够构建一个基于Web的对话协作演示,它可以聆听对话,生成实时转录,并根据上下文提供建议。
利用 Whisper Kit 构建移动对话协作助手
利用 Whisper Kit 构建移动对话协作助手
在看到了Web版对话协作演示的令人印象深刻的演示后,我决定探索使用Whisper Kit开源框架构建移动版本的可能性。Whisper Kit提供了一个Swift包,允许直接在iOS设备上部署Whisper语音转文字模型,实现低延迟的实时转录。
为了开始,我克隆了Whisper Kit GitHub存储库,并在Xcode中打开了示例项目。该项目包括一个whisper-ax
文件夹,其中包含了一个示例iOS应用程序的源代码,演示了Whisper Kit的使用。
在ContentView.swift
文件中,我首先定义了一些额外的状态变量,用于处理提示输入和来自大型语言模型的API响应摘要。然后,我添加了一个输入字段,供用户自定义提示,该提示将用于为大型语言模型提供上下文。
接下来,我实现了getSuggestion()
函数,该函数负责将转录和提示发送到Replicate API,以从Mistral语言模型生成响应。这个函数处理Replicate API的流式性质,不断检查状态,直到响应完成,然后将生成的建议更新到API_response_summary
状态变量中。
最后,我添加了一个"获取建议"按钮,触发getSuggestion()
函数,并在实时转录下方显示API响应摘要。
生成的iOS应用程序允许用户开始对话,实时查看转录,并从大型语言模型获得即时建议,以帮助引导对话。Whisper Kit用于语音转文字功能,结合Replicate API的集成,提供了一个流畅和响应式的对话协作体验,直接在用户的移动设备上。
这种方法为实时、基于上下文的对话辅助开辟了新的可能性,为用户在重要讨论、面试和社交互动中提供智能支持。通过利用最新的语音识别和大型语言模型技术,移动对话协作可以成为提高沟通和生产力的有价值工具。
我很兴奋继续完善和优化这个移动对话协作应用程序,并期待在它准备好发布时与社区分享。如果您对尝试这个应用程序或提供反馈感兴趣,请告诉我。
结论
结论
总之,开发一个实时对话协作系统是一项复杂的任务,需要解决几个关键挑战。主要挑战包括:
-
实时转录生成:实现低延迟、准确的语音转文字转录对于提供实时反馈至关重要。使用流式语音识别模型并优化音频块与转录文本之间的连接是必要的。
-
快速大型语言模型推理:快速生成相关建议和响应需要使用更小、专门的语言模型,以提供快速的推理时间。减小输入令牌大小和总结对话历史等技术可以帮助提高性能。
-
无缝集成:将实时转录生成和大型语言模型推理整合到一个连贯、用户友好的应用程序中,对于提供流畅有效的体验至关重要。
演示展示了如何使用Whisper语音转文字模型、Minstrel语言模型和Replicate平台等技术来解决这些挑战。生成的Web和移动应用程序提供实时转录和建议生成,展示了这项技术在各种对话场景(如面试、用户研究访谈和社交互动)中增强沟通质量和效率的潜力。
总的来说,开发实时对话协作系统是一个有前景的研究和开发领域,有望显著提高人与人之间沟通的质量和效率。
FAQ
FAQ