协议文档

目录

ace_agent.proto

顶部

APIStatusResponse

通用 API 状态响应消息

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

response_msg string

响应消息

status APIStatus

API 响应状态代码,定义在 `APIStatus` 中

ASRResult

ASR 结果

字段类型标签描述
results StreamingRecognitionResult

Riva Skills ASR 结果模式中的完整 ASR 响应

latency_ms float

start_time string

ISO8601 格式的开始时间,例如 2024-03-08T13:33:30.736Z

stop_time string

ISO8601 格式的停止时间

ChatEngineResponse

聊天引擎结果 json

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

result string

聊天引擎结果

latency_ms float

ChatRequest

用于聊天 API 的请求消息,将发送到聊天引擎

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

bot_name string

带有版本的机器人名称,如 {bot_name}_v{bot_version},例如 chitchat_bot_v1。

query string

query

query_id string

用于标识查询的唯一 ID

user_id string

用户 ID

source_language string

提供的查询字符串的语言,采用 [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) 语言标签。示例:"en-US"。

target_language string

聊天引擎所需的响应语言,采用 [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) 语言标签。示例:"en-US"。

is_standalone bool

用于发送独立文本请求的标志,设置为 true 时,响应不会发送到 TTS;设置为 false 时,响应将发送到 TTS

user_context ChatRequest.UserContextEntry repeated

要发送到聊天引擎的用户上下文的键值对

metadata ChatRequest.MetadataEntry repeated

要发送到聊天引擎的元数据的键值对

ChatRequest.MetadataEntry

字段类型标签描述
key string

value string

ChatRequest.UserContextEntry

字段类型标签描述
key string

value string

ChatResponse

来自聊天引擎的聊天 API 调用响应消息

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

query string

query

query_id string

用于标识查询的唯一 ID

user_id string

用户 ID

session_id string

会话 ID(如果由聊天引擎生成)

text string

针对 `ChatRequest` 中传递的查询的聊天引擎响应

cleaned_text string

删除 Markdown 语言标签后,聊天引擎清理后的响应文本

is_final bool

指示这是最终响应还是中间响应的标志,当为 true 时,对于请求的 `ChatRequest` 将不再有更多响应

json_response string

json 格式的聊天引擎响应

ConversationHistory

字段类型标签描述
bot_name string

带有版本的机器人名称,如 {bot_name}_v{bot_version},例如 chitchat_bot_v1。

conversation ConversationInstance repeated

ConversationInstance

字段类型标签描述
role Role

content string

EventRequest

用于事件 API 的请求消息,将发送到聊天引擎

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

bot_name string

带有版本的机器人名称,如 {bot_name}_v{bot_version},例如 chitchat_bot_v1。

event_type string

事件类型

event_id string

唯一事件 ID

user_id string

用户 ID

user_context EventRequest.UserContextEntry repeated

要发送到聊天引擎的用户上下文的键值对

metadata EventRequest.MetadataEntry repeated

要发送到聊天引擎的元数据的键值对

EventRequest.MetadataEntry

字段类型标签描述
key string

value string

EventRequest.UserContextEntry

字段类型标签描述
key string

value string

EventResponse

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

event_type string

事件类型

event_id string

唯一事件 ID

user_id string

用户 ID

text string

文本响应

cleaned_text string

is_final bool

json_response string

events string repeated

GetStatusRequest

GetStatusRequest 用于按需获取聊天控制器管道状态

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

GetStatusResponse

聊天控制器管道状态响应

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

pipeline_state PipelineStateResponse

PipelineRequest

PipelineRequest 用于创建/释放使用 stream_id 指定的管道

字段类型标签描述
stream_id string

客户端发送的唯一 ID,用于标识客户端连接。它映射到聊天控制器服务器上的唯一管道。

user_id string

用户 ID

PipelineStateResponse

聊天控制器管道状态响应

字段类型标签描述
state PipelineState

ReceiveAudioRequest

ReceiveAudioRequest 用于请求指定 stream_id 的音频数据。

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

ReceiveAudioResponse

接收音频 API 响应

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

audio_content bytes

合成的音频数据

encoding AudioEncoding

音频数据的编码

sample_rate_hertz int32

音频数据的采样率(赫兹,Hz)

audio_channel_count int32

音频数据中的声道数。仅支持单声道

frame_size int32

音频数据的帧大小

ReloadSpeechConfigsRequest

重新加载语音配置请求

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

SendAudioRequest

SendAudioRequest 用于发送 StreamingRecognitionConfig 消息

或音频内容。第一个 SendAudioRequest 消息必须包含一个

StreamingRecognitionConfig 消息,后跟音频内容消息。

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

streaming_config StreamingRecognitionConfig

向识别器提供信息,指定如何处理请求。第一个 `SendAudioRequest` 消息必须包含一个 `streaming_config` 消息。

audio_content bytes

要识别的音频数据。音频数据的顺序块从客户端流式传输。

source_id string

音频数据的源 ID

create_time string

ISO8601 格式的音频缓冲区创建时间戳

SpeechRecognitionAlternative

备选假设(又名 n-best 列表)。

字段类型标签描述
transcript string

表示用户所说单词的文本记录。

confidence float

非标准化置信度估计。较高的数字表示估计识别出的单词正确的可能性更高。此字段仅针对非流式结果或流式结果的 `is_final=true` 设置。不保证此字段始终准确,用户不应依赖它。

words WordInfo repeated

每个识别出的单词的特定信息列表。仅当 is_final=true 时填充

SpeechRecognitionControlRequest

SpeechRecognitionControlRequest 用于控制 ASR 的输入,

在内部静音 ASR。

它还用于禁用传入 ASR 输入的 DM-TTS 流

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

is_standalone bool

标志,用于说明是否将 asr 文本记录传递给 DM-TTS 或仅获取文本记录

StreamingRecognitionConfig

向 ASR 识别器提供有关传入音频数据的信息

字段类型标签描述
encoding AudioEncoding

请求中发送的音频数据的编码。所有编码仅支持 1 声道(单声道)音频。

sample_rate_hertz int32

`SendAudioRequest` 消息中发送的音频数据的采样率(赫兹,Hz)。

language_code string

提供的音频的语言,采用 [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) 语言标签。示例:"en-US"。默认为 en-US。

audio_channel_count int32

输入音频数据中的声道数。

model string

为给定请求选择哪个模型。

StreamingRecognitionResult

与当前正在处理的音频部分对应的流式语音识别结果。

that is currently being processed.

字段类型标签描述
alternatives SpeechRecognitionAlternative repeated

可能包含一个或多个识别假设(最多为 `max_alternatives` 中指定的数量)。这些备选项按准确性排序,排名最高的(第一个)备选项是识别器认为最可能的。

is_final bool

如果为 `false`,则此 `StreamingRecognitionResult` 表示可能更改的临时结果。如果为 `true`,这是语音服务将返回此特定 `StreamingRecognitionResult` 的最后一次,识别器将不再返回此文本记录部分和相应音频的任何进一步假设。

stability float

估计识别器不会更改其对该临时结果的猜测的可能性。值范围从 0.0(完全不稳定)到 1.0(完全稳定)。此字段仅针对临时结果(`is_final=false`)提供。默认值 0.0 是一个哨兵值,指示未设置 `stability`。

channel_tag int32

对于多声道音频,这是与来自该声道的音频的识别结果对应的声道号。对于 audio_channel_count = N,其输出值范围可以从“1”到“N”。

audio_processed float

到目前为止处理的音频长度(秒)

StreamingSpeechResultsRequest

StreamingSpeechResultsRequest 用于从聊天控制器请求各种结果

controller.

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

request_id string

用于标识并发客户端请求的 uuid

StreamingSpeechResultsResponse

聊天控制器元数据流式响应

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

message_type MessageType

消息类型,定义在 `MessageType` 中

asr_result ASRResult

chat_engine_response ChatEngineResponse

tts_result TTSResult

pipeline_state PipelineStateResponse

display_text string

SynthesizeSpeechRequest

用于独立 TTS 合成提供的文本记录的请求消息

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

transcript string

要合成的文本记录

TTSResult

TTS 结果元数据

字段类型标签描述
latency_ms float

TTS 延迟(毫秒)

time_till_eos_ms int32

完成 tts 音频渲染剩余的时间(毫秒)。这适用于 tts 设置为从管道图中流式传输和实时的情况。在非流式模式下,预计为 0。

UserContext

包含用户特定信息的用户上下文数据。

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

user_id string

用户 ID

bot_name string

带有版本的机器人名称,如 {bot_name}_v{bot_version},例如 chitchat_bot_v1。

conversation_history ConversationHistory repeated

用户的对话历史

context_json string

用户上下文的 json 格式化数据

UserContextRequest

UserContextRequest 用于请求用户上下文

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

user_id string

用户 ID

UserParametersRequest

UserParametersRequest 用于设置用户参数

字段类型标签描述
stream_id string

用于标识客户端连接的唯一 ID

user_id string

used id

bot_name string

带有版本的机器人名称,如 {bot_name}_v{bot_version},例如 chitchat_bot_v1。

WordInfo

识别出的单词的特定信息。

字段类型标签描述
start_time int32

相对于音频开始的毫秒偏移量,对应于口语单词的开始。仅当 `enable_word_time_offsets=true` 且仅在最佳假设中设置此字段。

end_time int32

相对于音频开始的毫秒偏移量,对应于口语单词的结束。仅当 `enable_word_time_offsets=true` 且仅在最佳假设中设置此字段。

word string

与此信息集对应的单词。

confidence float

非标准化置信度估计。较高的数字表示估计识别出的单词正确的可能性更高。不保证此字段始终准确,用户不应依赖它。默认值 0.0 是一个哨兵值,指示未设置置信度。

APIStatus

通用聊天控制器 API 状态

名称编号描述
UNKNOWN_STATUS 0

SUCCESS 1

PIPELINE_AVAILABLE 2

PIPELINE_NOT_AVAILABLE 3

BUSY 4

ERROR 5

INFO 6

AudioEncoding

AudioEncoding 指定封装消息中音频字节的编码。

名称编号描述
UNKNOWN 0

未指定。

LINEAR_PCM 1

未压缩的 16 位有符号小端序样本 (Linear PCM)。

FLAC 2

`FLAC`(Free Lossless Audio Codec,无损音频编解码器)是推荐的编码,因为它是无损的——因此识别不会受到影响——并且仅需要 `LINEAR16` 约一半的带宽。`FLAC` 流编码支持 16 位和 24 位样本,但是,并非 `STREAMINFO` 中的所有字段都受支持。

MULAW 3

使用 G.711 PCMU/mu-law 压缩 14 位音频样本的 8 位样本。

ALAW 5

使用 G.711 PCMU/a-law 压缩 13 位音频样本的 8 位样本。

MessageType

聊天控制器元数据流的消息类型字段

名称编号描述
UNKNOWN_RESPONSE 0

ASR_RESPONSE 1

CHAT_ENGINE_RESPONSE 2

TTS_RESPONSE 3

PIPELINE_STATE_RESPONSE 4

DISPLAY_TEXT 5

PipelineState

聊天控制器管道状态

名称编号描述
INIT 0

IDLE 1

WAIT_FOR_TRIGGER 2

ASR_ACTIVE 3

DM_ACTIVE 4

TTS_ACTIVE 5

Role

用于存储用户和机器人的对话历史

名称编号描述
UNDEFINED 0

USER 1

BOT 2

SYSTEM 3

AceAgentGrpc

AceAgentGrpc 服务提供与聊天引擎和语音交互的 API

组件。

方法名称请求类型响应类型描述
CreatePipeline PipelineRequest APIStatusResponse

CreatePipeline API 用于使用聊天控制器创建新管道。它使用客户端在 PipelineRequest 中填充的唯一 stream_id 创建聊天控制器管道。

FreePipeline PipelineRequest APIStatusResponse

FreePipeline API 用于释放聊天控制器的管道,该管道是使用 CreatePipeline API 创建的。客户端需要在 PipelineRequest 中传递与 CreatePipeline 中使用的相同的 stream_id。

SendAudio SendAudioRequest APIStatusResponse

SendAudio API 用于从聊天控制器向 ASR 流式传输音频内容。这是一个客户端流式 API。

ReceiveAudio ReceiveAudioRequest ReceiveAudioResponse

ReceiveAudio API 用于通过聊天控制器从 TTS 接收合成的音频。这是一个服务器端流式 API。

StreamSpeechResults StreamingSpeechResultsRequest StreamingSpeechResultsResponse

StreamSpeechResults API 用于从聊天控制器接收所有元数据,例如 ASR 文本记录、聊天引擎响应、管道状态等。这是一个广播 API,即它可以将响应扇出到使用相同 stream_id 的多个并发客户端实例。这是一个服务器端流式 API。

StartRecognition SpeechRecognitionControlRequest APIStatusResponse

StartRecognition API 用于在聊天控制器中启动 ASR 识别,以用于从 SendAudio API 流式传输的音频内容。此 API 还提供一个标志,用于将 ASR 识别标记为独立,即不会为 ASR 文本记录调用聊天引擎和 TTS。

StopRecognition SpeechRecognitionControlRequest APIStatusResponse

StopRecognition API 用于停止对从 SendAudio API 流式传输的音频内容的 ASR 识别。

SetUserParameters UserParametersRequest APIStatusResponse

SetUserParameters API 可用于在聊天控制器管道上设置运行时用户参数,例如 user_id。

GetStatus GetStatusRequest GetStatusResponse

GetStatus API 可用于获取聊天控制器管道的最新状态。如果启用了 UMIM,则此 API 无效

ReloadSpeechConfigs ReloadSpeechConfigsRequest APIStatusResponse

ReloadSpeechConfigs API 可用于在聊天控制器中重新加载 ASR 单词增强和 TTS Arpbet 配置。

SynthesizeSpeech SynthesizeSpeechRequest APIStatusResponse

SynthesizeSpeech API 用于将文本记录直接发送到 TTS 以进行独立 TTS 音频合成。生成的音频将路由到聊天控制器中提供的管道图中指定的路径。例如,如果 TTS 音频在图中路由到 A2F,则音频将发送到 A2F 服务器。如果 TTS 音频路由到 Grpc 客户端,则它将通过服务器端流式 ReceiveAudio API 提供。

GetUserContext UserContextRequest UserContext

GetUserContext API 用于从聊天引擎获取当前用户上下文。该 API 返回一个 UserContext 消息,其中包含当前对话历史记录和附加到活动 user_id 的任何上下文。如果启用了 UMIM,则此 API 无效

SetUserContext UserContext APIStatusResponse

SetUserContext API 用于在聊天引擎中设置当前用户上下文。该 API 接受一个 UserContext 消息,其中包含对话历史记录和要附加到活动 user_id 的任何上下文。如果启用了 UMIM,则此 API 无效

UpdateUserContext UserContext APIStatusResponse

UpdateUserContext API 用于从聊天引擎更新当前用户上下文。该 API 接受一个 UserContext 消息,其中包含要附加到活动 user_id 的任何上下文。如果启用了 UMIM,则此 API 无效

DeleteUserContext UserContextRequest APIStatusResponse

DeleteUserContext API 用于删除聊天引擎中附加到 user_id 的当前用户上下文。如果启用了 UMIM,则此 API 无效

Chat ChatRequest ChatResponse

Chat API 用于通过聊天控制器向聊天引擎发送文本查询。此 API 还提供一个标志,用于禁用聊天引擎生成的响应的 TTS 合成。这可以用于文本输入和文本输出类型的场景。如果启用了 UMIM,则此 API 无效

Event EventRequest EventResponse

Event API 用于通过聊天控制器向聊天引擎发送事件。如果启用了 UMIM,则此 API 无效

标量值类型

.proto 类型注释C++JavaPythonGoC#PHPRuby
double double double float float64 double float Float
float float float float float32 float float Float
int32 使用可变长度编码。对负数进行编码效率低下——如果您的字段可能具有负值,请改用 sint32。 int32 int int int32 int integer Bignum 或 Fixnum(根据需要)
int64 使用可变长度编码。对负数进行编码效率低下——如果您的字段可能具有负值,请改用 sint64。 int64 long int/long int64 long integer/string Bignum
uint32 使用可变长度编码。 uint32 int int/long uint32 uint integer Bignum 或 Fixnum(根据需要)
uint64 使用可变长度编码。 uint64 long int/long uint64 ulong integer/string Bignum 或 Fixnum(根据需要)
sint32 使用可变长度编码。有符号 int 值。与常规 int32 相比,这些更有效地编码负数。 int32 int int int32 int integer Bignum 或 Fixnum(根据需要)
sint64 使用可变长度编码。有符号 int 值。与常规 int64 相比,这些更有效地编码负数。 int64 long int/long int64 long integer/string Bignum
fixed32 始终为四个字节。如果值通常大于 2^28,则比 uint32 更有效。 uint32 int int uint32 uint integer Bignum 或 Fixnum(根据需要)
fixed64 始终为八个字节。如果值通常大于 2^56,则比 uint64 更有效。 uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 始终为四个字节。 int32 int int int32 int integer Bignum 或 Fixnum(根据需要)
sfixed64 始终为八个字节。 int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string 字符串必须始终包含 UTF-8 编码或 7 位 ASCII 文本。 string String str/unicode string string string String (UTF-8)
bytes 可能包含任何任意字节序列。 string ByteString str []byte ByteString string String (ASCII-8BIT)