本页内容
本页内容
主流消息传递
Discord 语音记录和会议记录
录制 Discord 语音通道中的内容,并将其转换为文字记录和会议记录。
捕获语音记录
voice.autoJoin 控制状态和通话;它不会启动持久记录。使用 transcripts 代理工具显式开始捕获,或配置现有的 transcripts.autoStart 源。有关配置和检查命令,请参阅 脚本 CLI。
授权代理可以通过以下方式开始捕获:
Capture 会订阅该确切的帐户、公会和频道,直至停止。它连接到现有的匹配语音连接,而不改变对话或占用所有权。当它与帐户配置的 voice.autoJoin 目标匹配时,无论哪个先启动,正常语音对话都会保持启用状态。使用 voice.autoJoin[].whenOccupied: true,连续捕获会等待空房间并在下一次正常连接时恢复。它还遵循同通道连接恢复和同一帐户语音管理器的更换。 Capture 永远不会将现有连接移动到另一个通道。
授权捕获记录所选房间中的参与者,与命令访问无关。 Guild/channel 用户和角色、commands.ownerAllowFrom 和唤醒名称门仍然控制对话、代理工具和主动运行控件;录制不会授予任何这些权限。录制受保护播放期间的语音,不会中断播放或触发回复。如果 OpenClaw 首先订阅已经发言的某人,它会记录可用的语音,而无需对话输入或命令。正常会话需要在当前流结束后重新接收新的流; voice.captureSilenceGraceMs 内的短暂暂停保持当前流及其仅记录行为。
完整的录音覆盖需要批量音频理解。录音使用每个扬声器一个音频流和批量转录,以及接收者的用户 ID、独立解析的显示标签和音频进入时间。授权发言者还可以通过相同的解码音频提供实时对话。当所有实时扬声器连接都繁忙时,录音将继续。这需要额外的实时语音批量转录,但可以保持持久记录,独立于实时提供商交付和对话授权。连续的语音被分成连续的、有界的音频上传;这些是同一捕获会话中的片段,而不是单独的会议。在stt-tts模式下,授权会话共享批量转录并等待语音正常结束才响应。
当批量转录被禁用或没有可用的批量后端时,现有的仅实时设置可以从活动的每个扬声器连接中记录最终文本。这种有限的路由要求每个提交的音频数据包都属于同一个主动捕获;它等待所有批处理工作完成,并且永远不会重复成功或静默的批处理结果。混合捕获输入、失败或过大的音频以及提供商连续性重置无法生成录制后备文本。它仅涵盖允许实时对话的发言者,因此不提供独立的房间录音。 /vc status 显示覆盖警告并指导操作员配置音频转录。将 tools.media.audio.enabled 设置为 false 来开始捕获需要现有的活动实时对话;否则它会返回启用错误。待决的实时决赛仅限于 1 MiB 和每个扬声器连接 1,000 个条目。
对话授权和回复与录音分开运行。每个语音连接允许 8 个未完成的语音请求,最多1 MiB等待每个请求入场的解码音频。批量请求最多保留1 MiB转录文本和1,000段。达到限制将丢弃整个语音请求并继续录制;待处理的请求完成后再次发言,或使用较短的话语。待办的Discord整个网关进程的记录工作上限为128块和64 MiB of WAV数据。如果转录或保存笔记无法跟上,受影响的接收流将停止并且捕获将保持注册状态。该预算在语音重新连接后仍然有效;等待待处理的音频处理完成,然后再次讲话。如果转录失败或省略输入(例如过大的上传),块将失去命令访问权限,或者开始或停止捕获会丢弃低于最短持续时间的未捕获片段,成功的注释将保留保存,但不完整的话语不会触发代理回复或主动运行控制。恢复的访问适用于后续的话语,而不是丢失的块。允许没有文本的完整转录,并且不会使话语无效。
如果该公会中没有配置自动加入目标或活动对话,则手动捕获会以仅转录模式静默加入。随后的 /vc join 启用该连接上的正常对话。另一个通道的捕获保持注册状态,而不接管已配置或活动的对话,包括当记录器重新连接等待新的对话加入时。
使用 transcripts 工具的 stop 操作和返回的 sessionId 停止。停止捕获在断开连接时有效,并且不会断开对话拥有的连接。已接收到的音频可以通过连接转换完成录制,同时相同的捕获保持活动状态。停止或更换撤销待公布;旧音频无法输入新捕获。对同一注册源启动新的捕获会传输订阅,而无需重新连接或重复目标验证,即使它处于休眠状态也是如此。连续捕获可以跨越多个房间占用,直到明确停止为止。对于自动会议边界,请使用 transcripts.autoStart[].whenOccupied,如下所述。摘要不会自动发布到 Discord。
会议记录
使用 discord-voice 转录提供程序仅在有人在场时将记笔记机器人保留在语音通道中。如果没有会话自动加入目标或活动会话,捕获只是侦听并且不会启动实时提供程序。将捕获附加到现有对话可以保留其所有权。启用 Discord 语音,配置经过身份验证的 语音转文本提供商 ,并添加占用驱动的转录源:
该机器人需要目标通道中的 Connect 权限和 GuildVoiceStates 意图,voice.enabled: true 默认启用该权限。不要显式禁用 channels.discord.intents.voiceStates。将通道保留在任何已配置的 voice.allowedChannels 白名单内。对于此笔记秘诀,请使用 transcripts.autoStart,而不是会话式 voice.autoJoin。告诉参与者机器人在启用之前会捕获并存储文字记录。
对于多个 Discord 帐户,请添加 accountId 以选择启用语音的机器人,除非配置的默认帐户可以明确解决该问题。每个帐户和公会最多配置一个占用驱动的 discord-voice 条目;机器人无法捕获同一行会中的多个语音通道。随后的冲突条目将被跳过并带有警告。
该机器人会在人员到达时加入,包括在启动时通道已被占用时。最后一个人离开后,它会等待 30 秒才离开并生成笔记;在此宽限期内返回会保持捕获运行。剧集使用生成的会话 ID,忽略配置的 sessionId。不到 10 分钟前停止的会话可以在网关重新启动后或在其存储的源确认生成的 ID 时短暂间隔后重新针对同一源重新打开。它保留其 ID、开始时间和累积的话语。所提供的 ID 和来源不明的遗留记录保持存档;捕获会重新开始,而不会更改这些音符。
注释包括参与者、概述、决策、行动项目和风险。在捕获期间,保存新语音后,注释大约每五分钟更新一次。安静的房间不会引发重复的总结。捕获停止会耗尽接收到的语音并保存最后的笔记。他们使用代理的实用模型,回退到其主要模型,然后在模型生成失败时进行基于规则的注释。使用 transcripts 工具、CLI 或 Control UI 会议页面读取存储的笔记。该工具的 summarize 操作从存储的记录中重新生成笔记。