Inter-1 实现流式处理:从实时视频、音频和文本中检测社交信号

Reddit r/artificial 产品

摘要

Interhuman.ai 为其 Inter-1 模型推出了流式 API,通过 WebSocket 从实时视频流中检测 12 种社交信号,并支持参与度追踪和对话质量评分。

你好——我是 Interhuman AI 的 Filip 👋 上个月我们推出了 Inter-1,这是我们的多模态模型,用于从视频、音频和文本中检测社交信号。今天,我们让它可以处理视频流了。我们刚刚发布了 Inter-1 流式 API:一个 WebSocket 端点,运行完整的 Inter-1 栈——在对话进行中,对实时视频检测 12 种社交信号、结构化推理、参与度和对话质量。你传入 WebM 块,就会收到定期更新的检测信号。模型以滑动 8 秒窗口运行,处理比率低于 1.0,因此速度足够快,可以支持实时指导提示、通话内叠加和自适应 UI。它本身并不旨在成为一个完整的语音代理,而是作为行为信号层,接入你正在构建的任何交互系统之下。如果你正在从事销售/客服工具、面试辅导、培训或实时反馈产品的开发,并希望尝试实时社交智能,那么它可能值得一看。欢迎在评论区提问或集思广益使用场景。
查看原文
查看缓存全文

缓存时间: 2026/05/21 08:18

# Inter-1 实现流式处理 来源:https://www.interhuman.ai/blog/inter-1-streaming 当我们在4月15日发布Inter-1时(https://www.interhuman.ai/blog/introducing-inter-1),我们说过流式推理是下一步计划。今天,我们正式发布这一功能。 Streaming API将Inter-1的完整能力集——12种社交信号、结构化推理、参与度追踪以及五维对话质量指数——引入实时视频处理,以类型化事件流的形式通过WebSocket在对话进行中交付。 Streaming 发布示意图 ## 从静态分析到实时处理 Inter-1最初通过上传端点提供服务。你发送一个视频文件,模型处理后返回完整的行为分析结果:检测到的信号、推理过程以及整个交互的质量评分。这种形式适合回顾性工作——事后复盘销售通话、回顾辅导环节、对面试录音进行评分。回顾性反馈是一个强大的学习闭环,对于很多应用场景仍然是正确的模式。 但有些反馈只有在当下才有价值。销售代表可以在通话进行中回应买家的犹豫。候选人可以在面试练习中实时调整,而不是等录制结束后才纠正。临床医生、教练或培训师可以在互动过程中调整他们的方法。对于这些工作流,事后回溯已经太迟了。 整个领域都在向实时、多模态交互转变。Thinking Machines 最近关于交互模型的研究(https://thinkingmachines.ai/blog/interaction-models/)认为,交互性应当与智能同步扩展,模型应在连续循环中感知和响应,而不是离散的回合。我们认为他们是对的。Streaming API是我们迈出的第一步:将Inter-1的行为分析能力开放给实时对话,使输出能够切实影响后续的交互。 ## 工作原理 Streaming API 是一个基于事件驱动机制的 WebSocket 协议。你建立连接,推送视频数据,然后接收一个类型化的观察结果流。其中有五个关键组成部分值得了解。 Streaming 协议示意图 ### 握手 客户端连接,服务器进行身份验证,返回的第一条消息是 `session.ready` 事件,声明了连接的规则——最大会话时长、最大数据块大小、支持的配置选项。你的实现应基于这些声明的限制,而不是假定的默认值。 ### 可选配置 在流传输开始前,客户端可以发送 `session.configure` 消息来选择启用额外的分析。默认情况下,你会获得信号检测和参与度分析(含概率和推理)。 ### 视频输入 客户端逐个推送 WebM 视频数据块。不要求固定的分段大小——服务器会将接收到的字节累积到一个滚动缓冲区中,自行决定如何切分以进行分析。 ### 滑动窗口分析 默认情况下,服务器采用 8 秒的分析窗口,每 3 秒滑动一次,因此对话中的任意时刻都会在不同上下文中被多次检测。窗口会被并发处理以降低延迟,但结果的输出是有序的——你不会看到关于第 30 秒的观察结果出现在第 25 秒之前。每个窗口的处理时间少于窗口本身时长(处理比小于 1.0)。当队列出现积压(网络慢、GPU 争用等)时,服务器会丢弃冗余窗口并告知客户端哪些时间段的窗口被丢弃了,这样你就不会遇到未知的静默空白。 ### 计费与关闭 你只需为实际被分析和交付的视频秒数付费。被丢弃的窗口和失败的工作不计费。连接关闭时,正在进行的分析会被取消,任何在断开时仍处于活动状态的信号会被视为隐式结束——你可以依赖这样一个规则:每个 `signal.detected` 都会有一个对应的 `signal.ended`(显式或隐式)。 ## 关于定位的说明 小于 1.0 的处理速度足以驱动实时的教练提示、应用内覆盖层和自适应 UI。但**不**适用于亚秒级的对话轮次切换。 如果你正在构建一个需要打断、做副声道或与用户同时说话的语音代理,你需要的是一个交互模型。Streaming API 提供的是行为信号层,你可以在此基础上构建任何交互系统。 ## 返回内容 服务器不是为每个分段返回一个大的负载,而是随着状态变化发出类型化事件。每个事件都带有会话时间戳,这样你就可以渲染覆盖层、触发 UI 提示,或者将流写入时间线供后续回顾。 `signal.detected` 社交信号开始(例如,听者开始点头表示同意,或说话者开始含糊其辞)。包含信号名称、概率以及结构化推理:哪些行为线索(来自言语、副言语、非言语模态)支持了该检测。 `signal.ended` 信号停止。与对应的 `signal.detected` 配对。 `engagement.updated` 参与者的参与度水平发生变化(投入、中立、不投入)。仅在状态转换时发出,不作为心跳。 `conversation_quality.updated` 五个维度的定期评分卡:清晰度、权威性、能量、融洽度、学习度。大约每 8 秒发出一次,包含窗口分数和累积会话分数(采用时间加权,避免单一强时刻拖累整场会话)。 `error` 发生错误。包含错误代码和人类可读的消息。 `` { "timestamp": "2026-05-18T13:28:33.680921Z", "correlation_id": "6d5b5776-265d-430d-8b4f-e37dde26fa93", "type": "signal.detected", "data": { "signal_type": "agreement", "start": 56, "probability": "high", "rationale": "The listener smiles warmly and nods his head while the speaker describes his actions as 'classic kid mischief.' His positive facial expression and nodding gestures clearly indicate his assent and alignment with the speaker's playful assessment." }} `` ## 快速开始 连接,等待握手,配置,然后开始流传输。以下是一个最小化的端到端 Python 示例。 `` import asyncioimport jsonimport websocketsINTERHUMAN_WS = "wss://api.interhuman.ai/v1/stream"async def stream_session(video_chunks, api_key): headers = {"Authorization": f"Bearer {api_key}"} async with websockets.connect(INTERHUMAN_WS, extra_headers=headers) as ws: # 1. 等待 session.ready —— 服务器声明限制和配置选项 ready = json.loads(await ws.recv()) assert ready["type"] == "session.ready" # 2. 选择启用额外分析(信号 + 参与度是默认的) await ws.send(json.dumps({ "type": "session.configure", "include": ["conversation_quality", "feedback"], })) # 3. 并发地流式传输视频块并消费事件 async def sender(): for chunk in video_chunks: # 原始 WebM 字节,任意大小 await ws.send(chunk) async def receiver(): async for message in ws: event = json.loads(message) handle(event) await asyncio.gather(sender(), receiver())def handle(event): t = event.get("t") # session timestamp in seconds match event["type"]: case "signal.detected": print(f"[{t}s] {event['signal']} started " f"(p={event['probability']:.2f}) – {event['rationale']}") case "signal.ended": print(f"[{t}s] {event['signal']} ended") case "engagement.updated": print(f"[{t}s] engagement -> {event['state']}") case "conversation_quality.updated": print(f"[{t}s] CQI {event['scores']}") # clarity/authority/energy/rapport/learning case "feedback.generated": print(f"[{t}s] {event['text']}") case "error": print(f"[{t}s] ERROR {event['code']}: {event['message']}") ``

相似文章

交互模型

Hacker News Top

Thinking Machines AI 宣布推出交互模型的研究预览版,这是一种专为音频、视频和文本领域原生、实时人机协作而设计的全新架构。通过以多流、微轮次设计取代传统的轮流交互界面,该模型旨在让人类始终保持在环,同时提供业界领先的智能水平与响应速度。