API 参考#

顶部

riva/proto/health.proto#

HealthCheckRequest#

字段

类型

标签

描述

service

string

HealthCheckResponse#

字段

类型

标签

描述

status

HealthCheckResponse.ServingStatus

HealthCheckResponse.ServingStatus#

名称

编号

描述

UNKNOWN

0

SERVING

1

NOT_SERVING

2

Health#

方法名称

请求类型

响应类型

描述

Check

HealthCheckRequest

HealthCheckResponse

Watch

HealthCheckRequest

HealthCheckResponse

顶部

riva/proto/riva_asr.proto#

EndpointingConfig#

EndpointingConfig 用于配置与话语开始或结束相关的不同字段

字段

类型

标签

描述

start_history

int32

可选

start_history 是用于检测话语开始的窗口大小,以毫秒为单位。start_threshold 是用于检测话语开始的百分比阈值。(0.0 到 1.0)如果声学模型输出的 start_history 毫秒中有 start_threshold 的比例为非空白标记,则检测到话语开始。

start_threshold

float

可选

stop_history

int32

可选

stop_history 是用于检测话语结束的窗口大小,以毫秒为单位。stop_threshold 是用于检测话语结束的百分比阈值。(0.0 到 1.0)如果声学模型输出的 stop_history 毫秒中有 stop_threshold 的比例为非空白标记,则检测到话语结束,解码器将被重置。

stop_threshold

float

可选

stop_history_eou

int32

可选

stop_history_eoustop_threshold_eou 用于两遍话语结束。stop_history_eou 是用于触发第一遍话语结束并生成稳定性为 1 的部分转录的窗口大小,以毫秒为单位。(stop_history_eou < stop_history)stop_threshold_eou 是用于触发第一遍话语结束的百分比阈值。(0.0 到 1.0)如果声学模型输出的 stop_history_eou 毫秒中有 stop_threshold_eou 的比例为非空白标记,则触发第一遍话语结束。

stop_threshold_eou

float

可选

PipelineStates#

字段

类型

标签

描述

vad_probabilities

float

repeated

神经 VAD 概率

RecognitionConfig#

向识别器提供信息,指定如何处理请求

字段

类型

标签

描述

encoding

nvidia.riva.AudioEncoding

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

sample_rate_hertz

int32

RecognizeRequestStreamingRecognizeRequest 消息中发送的音频数据的采样率,以赫兹 (Hz) 为单位。Riva 服务器将自动对音频进行降采样/升采样,以匹配 ASR 声学模型的采样率。低于 8kHz 的采样率值不会产生任何有意义的输出。

language_code

string

必需。所提供音频的语言,采用 BCP-47 语言标签。示例:“en-US”。

max_alternatives

int32

要返回的最大识别假设数。具体而言,每个 SpeechRecognizeResult 消息中 SpeechRecognizeAlternative 消息的最大数量。服务器可能会返回少于 max_alternatives 的数量。如果省略,则最多返回一个。

profanity_filter

bool

一个自定义字段,用于为生成的转录启用不雅内容过滤。如果设置为“true”,服务器会过滤掉不雅内容,并将每个过滤词中除首字母外的所有字符替换为星号。例如,“x**”。如果设置为 false 或省略,则不会过滤掉不雅内容。默认值为 false

speech_contexts

SpeechContext

repeated

SpeechContext 数组。一种提供上下文以辅助语音识别的方法。有关更多信息,请参阅 SpeechContext 部分

audio_channel_count

int32

输入音频数据中的通道数。如果为 0 或省略,则默认为一个通道(单声道)。注意:目前仅支持单通道音频输入。

enable_word_time_offsets

bool

如果为 true,则顶部结果包括单词列表以及这些单词的开始和结束时间偏移(时间戳)以及置信度分数。如果为 false,则不返回单词级时间偏移信息。默认值为 false

enable_automatic_punctuation

bool

如果为“true”,则向识别结果假设添加标点符号。默认值“false”不会向结果假设添加标点符号。

enable_separate_recognition_per_channel

bool

需要显式设置为 trueaudio_channel_count > 1 才能分别识别每个通道。识别结果将包含一个 channel_tag 字段,以说明该结果属于哪个通道。如果不是 true,我们将仅识别第一个通道。请求将按识别的所有通道累计计费:audio_channel_count 乘以音频长度。注意:此字段尚不支持。

model

string

为给定请求选择哪个模型。如果为空,Riva 将根据其他 RecognitionConfig 参数选择正确的模型。模型应对应于使用 --name 参数传递给 riva-build 的名称

verbatim_transcripts

bool

verbatim_transcripts 标志启用或禁用逆文本规范化。“true”返回所说的内容,不进行反规范化。“false”应用逆文本规范化,这也是默认值

custom_configuration

RecognitionConfig.CustomConfigurationEntry

repeated

用于将请求级配置选项传递到模型管道中使用的插件的自定义字段。

endpointing_config

EndpointingConfig

可选

用于调整话语开始或结束参数的配置。如果为空,Riva 将使用默认值或在 riva-build 参数中指定的自定义值。

RecognitionConfig.CustomConfigurationEntry#

字段

类型

标签

描述

key

string

value

string

RecognizeRequest#

RecognizeRequest 用于批量处理单个录音。

字段

类型

标签

描述

config

RecognitionConfig

向识别器提供信息,指定如何处理请求。

audio

bytes

要处理的原始音频数据。音频字节必须按照 RecognitionConfig 中的规定进行编码。

id

nvidia.riva.RequestId

要与请求关联的 ID。如果提供,则将在相应的响应中返回此 ID。

RecognizeResponse#

Recognize 方法返回给客户端的唯一消息。它包含结果,形式为零个或多个连续的 SpeechRecognitionResult 消息。

字段

类型

标签

描述

results

SpeechRecognitionResult

repeated

与音频的连续部分相对应的转录结果的顺序列表。目前仅返回一个转录。

id

nvidia.riva.RequestId

与请求关联的 ID

RivaSpeechRecognitionConfigRequest#

字段

类型

标签

描述

model_name

string

如果指定了 model,则仅返回模型的配置,否则返回所有配置。

RivaSpeechRecognitionConfigResponse#

字段

类型

标签

描述

model_config

RivaSpeechRecognitionConfigResponse.Config

repeated

RivaSpeechRecognitionConfigResponse.Config#

字段

类型

标签

描述

model_name

string

parameters

RivaSpeechRecognitionConfigResponse.Config.ParametersEntry

repeated

RivaSpeechRecognitionConfigResponse.Config.ParametersEntry#

字段

类型

标签

描述

key

string

value

string

SpeechContext#

向语音识别器提供“提示”,以在结果中偏向特定的单词和短语。

字段

类型

标签

描述

phrases

string

repeated

包含单词和短语“提示”的字符串列表,以便语音识别更可能识别它们。这可以用于提高特定单词和短语的准确性,例如,如果用户通常说特定的命令。这也可以用于向识别器的词汇表添加额外的单词。

boost

float

提示提升。正值将增加特定短语被识别的可能性,超过其他听起来相似的短语。提升越高,误报识别的可能性也越高。虽然 boost 可以接受范围广泛的正值,但大多数用例最好使用介于 0 和 20 之间的值。我们建议使用二分搜索方法来找到您的用例的最佳值。

SpeechRecognitionAlternative#

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

字段

类型

标签

描述

transcript

string

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

confidence

float

置信度估计。数字越高表示识别出的单词正确的可能性越大。此字段仅为非流式结果或 is_final=true 的流式结果设置。此字段不能保证准确,用户不应依赖于始终提供它。虽然置信度目前可以粗略地解释为自然对数概率,但估计计算随不同配置而变化,并且可能会发生变化。默认值 0.0 是一个哨兵值,表示未设置置信度。

words

WordInfo

repeated

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

SpeechRecognitionResult#

与最新转录对应的语音识别结果

字段

类型

标签

描述

alternatives

SpeechRecognitionAlternative

repeated

可能包含一个或多个识别假设(最多为 max_alternatives 中指定的最大值)。这些备选项按准确性排序,最有可能的顶部(第一个)备选项由识别器排名。

channel_tag

int32

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

audio_processed

float

到目前为止处理的音频长度,以秒为单位

StreamingRecognitionConfig#

向识别器提供信息,指定如何处理请求

字段

类型

标签

描述

config

RecognitionConfig

向识别器提供信息,指定如何处理请求

interim_results

bool

如果为 true,则可能会返回临时结果(试探性假设),因为它们变得可用(这些临时结果用 is_final=false 标志指示)。如果为 false 或省略,则仅返回 is_final=true 结果。

StreamingRecognitionResult#

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

字段

类型

标签

描述

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

到目前为止处理的音频长度,以秒为单位

pipeline_states

PipelineStates

可选

管道状态的消息

StreamingRecognizeRequest#

StreamingRecognizeRequest 用于配置音频内容并将其流式传输到 Riva ASR 服务。发送的第一个消息必须仅包含 StreamingRecognitionConfig。流中发送的后续消息必须仅包含要识别的音频的原始字节。

字段

类型

标签

描述

streaming_config

StreamingRecognitionConfig

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

audio_content

bytes

要识别的音频数据。音频数据的连续块在连续的 StreamingRecognizeRequest 消息中发送。第一个 StreamingRecognizeRequest 消息不得包含 audio 数据,所有后续 StreamingRecognizeRequest 消息都必须包含 audio 数据。音频字节必须按照 RecognitionConfig 中的规定进行编码。

id

nvidia.riva.RequestId

要与请求关联的 ID。如果提供,则将在相应的响应中返回此 ID。

StreamingRecognizeResponse#

字段

类型

标签

描述

results

StreamingRecognitionResult

repeated

此重复列表包含与当前正在处理的音频对应的最新转录。目前返回一个结果,其中每个结果可以有多个备选项

id

nvidia.riva.RequestId

与请求关联的 ID

WordInfo#

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

字段

类型

标签

描述

start_time

int32

相对于音频开始的时间偏移,以毫秒为单位,对应于口语单词的开始。仅当 enable_word_time_offsets=true 且仅在顶部假设中设置此字段。

end_time

int32

相对于音频开始的时间偏移,以毫秒为单位,对应于口语单词的结束。仅当 enable_word_time_offsets=true 且仅在顶部假设中设置此字段。

word

string

与此信息集对应的单词。

confidence

float

置信度估计。数字越高表示识别出的单词正确的可能性越大。此字段仅为非流式结果或 is_final=true 的流式结果设置。此字段不能保证准确,用户不应依赖于始终提供它。虽然置信度目前可以粗略地解释为自然对数概率,但估计计算随不同配置而变化,并且可能会发生变化。默认值 0.0 是一个哨兵值,表示未设置置信度。

speaker_tag

int32

仅输出。在此版本中不可用

RivaSpeechRecognition#

RivaSpeechRecognition 服务提供两种将语音转换为文本的机制。

方法名称

请求类型

响应类型

描述

Recognize

RecognizeRequest

RecognizeResponse

Recognize 期望一个 RecognizeRequest 并返回一个 RecognizeResponse。此请求将阻塞,直到音频上传、处理并返回转录。

StreamingRecognize

StreamingRecognizeRequest

StreamingRecognizeResponse

StreamingRecognize 是一个非阻塞 API 调用,允许在音频数据可用时以块的形式将其馈送到服务器。根据 StreamingRecognizeRequest 中的配置,中间结果可以发送回客户端。当客户端关闭流时,识别结束。

GetRivaSpeechRecognitionConfig

RivaSpeechRecognitionConfigRequest

RivaSpeechRecognitionConfigResponse

使客户端能够请求当前 ASR 服务的配置,或服务中特定模型的配置。

顶部

riva/proto/riva_audio.proto#

AudioEncoding#

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

名称

编号

描述

ENCODING_UNSPECIFIED

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 位样本。

OGGOPUS

4

ALAW

20

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

顶部

riva/proto/riva_common.proto#

RequestId#

指定请求的请求 ID。

字段

类型

标签

描述

value

string

标量值类型#

.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)