通用 API 状态响应消息
字段 | 类型 | 标签 | 描述 |
stream_id | string | 用于标识客户端连接的唯一 ID |
|
response_msg | string | 响应消息 |
|
status | APIStatus | API 响应状态代码,定义在 `APIStatus` 中 |
ASR 结果
字段 | 类型 | 标签 | 描述 |
results | StreamingRecognitionResult | Riva Skills ASR 结果模式中的完整 ASR 响应 |
|
latency_ms | float |
|
|
start_time | string | ISO8601 格式的开始时间,例如 2024-03-08T13:33:30.736Z |
|
stop_time | string | ISO8601 格式的停止时间 |
聊天引擎结果 json
字段 | 类型 | 标签 | 描述 |
stream_id | string | 用于标识客户端连接的唯一 ID |
|
result | string | 聊天引擎结果 |
|
latency_ms | float |
|
用于聊天 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 | 要发送到聊天引擎的元数据的键值对 |
字段 | 类型 | 标签 | 描述 |
key | string |
|
|
value | string |
|
字段 | 类型 | 标签 | 描述 |
key | string |
|
|
value | string |
|
来自聊天引擎的聊天 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 格式的聊天引擎响应 |
字段 | 类型 | 标签 | 描述 |
bot_name | string | 带有版本的机器人名称,如 {bot_name}_v{bot_version},例如 chitchat_bot_v1。 |
|
conversation | ConversationInstance | repeated |
|
字段 | 类型 | 标签 | 描述 |
role | Role |
|
|
content | string |
|
用于事件 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 | 要发送到聊天引擎的元数据的键值对 |
字段 | 类型 | 标签 | 描述 |
key | string |
|
|
value | string |
|
字段 | 类型 | 标签 | 描述 |
key | string |
|
|
value | string |
|
字段 | 类型 | 标签 | 描述 |
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 用于按需获取聊天控制器管道状态
字段 | 类型 | 标签 | 描述 |
stream_id | string | 用于标识客户端连接的唯一 ID |
聊天控制器管道状态响应
字段 | 类型 | 标签 | 描述 |
stream_id | string | 用于标识客户端连接的唯一 ID |
|
pipeline_state | PipelineStateResponse |
|
PipelineRequest 用于创建/释放使用 stream_id 指定的管道
字段 | 类型 | 标签 | 描述 |
stream_id | string | 客户端发送的唯一 ID,用于标识客户端连接。它映射到聊天控制器服务器上的唯一管道。 |
|
user_id | string | 用户 ID |
聊天控制器管道状态响应
字段 | 类型 | 标签 | 描述 |
state | PipelineState |
|
ReceiveAudioRequest 用于请求指定 stream_id 的音频数据。
字段 | 类型 | 标签 | 描述 |
stream_id | string | 用于标识客户端连接的唯一 ID |
接收音频 API 响应
字段 | 类型 | 标签 | 描述 |
stream_id | string | 用于标识客户端连接的唯一 ID |
|
audio_content | bytes | 合成的音频数据 |
|
encoding | AudioEncoding | 音频数据的编码 |
|
sample_rate_hertz | int32 | 音频数据的采样率(赫兹,Hz) |
|
audio_channel_count | int32 | 音频数据中的声道数。仅支持单声道 |
|
frame_size | int32 | 音频数据的帧大小 |
重新加载语音配置请求
字段 | 类型 | 标签 | 描述 |
stream_id | string | 用于标识客户端连接的唯一 ID |
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 格式的音频缓冲区创建时间戳 |
备选假设(又名 n-best 列表)。
字段 | 类型 | 标签 | 描述 |
transcript | string | 表示用户所说单词的文本记录。 |
|
confidence | float | 非标准化置信度估计。较高的数字表示估计识别出的单词正确的可能性更高。此字段仅针对非流式结果或流式结果的 `is_final=true` 设置。不保证此字段始终准确,用户不应依赖它。 |
|
words | WordInfo | repeated | 每个识别出的单词的特定信息列表。仅当 is_final=true 时填充 |
SpeechRecognitionControlRequest 用于控制 ASR 的输入,
在内部静音 ASR。
它还用于禁用传入 ASR 输入的 DM-TTS 流
字段 | 类型 | 标签 | 描述 |
stream_id | string | 用于标识客户端连接的唯一 ID |
|
is_standalone | bool | 标志,用于说明是否将 asr 文本记录传递给 DM-TTS 或仅获取文本记录 |
向 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 | 为给定请求选择哪个模型。 |
与当前正在处理的音频部分对应的流式语音识别结果。
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 用于从聊天控制器请求各种结果
controller.
字段 | 类型 | 标签 | 描述 |
stream_id | string | 用于标识客户端连接的唯一 ID |
|
request_id | string | 用于标识并发客户端请求的 uuid |
聊天控制器元数据流式响应
字段 | 类型 | 标签 | 描述 |
stream_id | string | 用于标识客户端连接的唯一 ID |
|
message_type | MessageType | 消息类型,定义在 `MessageType` 中 |
|
asr_result | ASRResult |
|
|
chat_engine_response | ChatEngineResponse |
|
|
tts_result | TTSResult |
|
|
pipeline_state | PipelineStateResponse |
|
|
display_text | string |
|
用于独立 TTS 合成提供的文本记录的请求消息
字段 | 类型 | 标签 | 描述 |
stream_id | string | 用于标识客户端连接的唯一 ID |
|
transcript | string | 要合成的文本记录 |
TTS 结果元数据
字段 | 类型 | 标签 | 描述 |
latency_ms | float | TTS 延迟(毫秒) |
|
time_till_eos_ms | int32 | 完成 tts 音频渲染剩余的时间(毫秒)。这适用于 tts 设置为从管道图中流式传输和实时的情况。在非流式模式下,预计为 0。 |
包含用户特定信息的用户上下文数据。
字段 | 类型 | 标签 | 描述 |
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 用于请求用户上下文
字段 | 类型 | 标签 | 描述 |
stream_id | string | 用于标识客户端连接的唯一 ID |
|
user_id | string | 用户 ID |
UserParametersRequest 用于设置用户参数
字段 | 类型 | 标签 | 描述 |
stream_id | string | 用于标识客户端连接的唯一 ID |
|
user_id | string | used id |
|
bot_name | string | 带有版本的机器人名称,如 {bot_name}_v{bot_version},例如 chitchat_bot_v1。 |
识别出的单词的特定信息。
字段 | 类型 | 标签 | 描述 |
start_time | int32 | 相对于音频开始的毫秒偏移量,对应于口语单词的开始。仅当 `enable_word_time_offsets=true` 且仅在最佳假设中设置此字段。 |
|
end_time | int32 | 相对于音频开始的毫秒偏移量,对应于口语单词的结束。仅当 `enable_word_time_offsets=true` 且仅在最佳假设中设置此字段。 |
|
word | string | 与此信息集对应的单词。 |
|
confidence | float | 非标准化置信度估计。较高的数字表示估计识别出的单词正确的可能性更高。不保证此字段始终准确,用户不应依赖它。默认值 0.0 是一个哨兵值,指示未设置置信度。 |
通用聊天控制器 API 状态
名称 | 编号 | 描述 |
UNKNOWN_STATUS | 0 | |
SUCCESS | 1 | |
PIPELINE_AVAILABLE | 2 | |
PIPELINE_NOT_AVAILABLE | 3 | |
BUSY | 4 | |
ERROR | 5 | |
INFO | 6 |
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 位样本。 |
聊天控制器元数据流的消息类型字段
名称 | 编号 | 描述 |
UNKNOWN_RESPONSE | 0 | |
ASR_RESPONSE | 1 | |
CHAT_ENGINE_RESPONSE | 2 | |
TTS_RESPONSE | 3 | |
PIPELINE_STATE_RESPONSE | 4 | |
DISPLAY_TEXT | 5 |
聊天控制器管道状态
名称 | 编号 | 描述 |
INIT | 0 | |
IDLE | 1 | |
WAIT_FOR_TRIGGER | 2 | |
ASR_ACTIVE | 3 | |
DM_ACTIVE | 4 | |
TTS_ACTIVE | 5 |
用于存储用户和机器人的对话历史
名称 | 编号 | 描述 |
UNDEFINED | 0 | |
USER | 1 | |
BOT | 2 | |
SYSTEM | 3 |
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++ | Java | Python | Go | C# | PHP | Ruby |
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) |