快捷方式

CTCDecoder

class torchaudio.models.decoder.CTCDecoder[source]

CTC beam search decoder from Flashlight [Kahn et al., 2022]

This feature supports the following devices: CPU

注意

要构建解码器,请使用工厂函数 ctc_decoder()

使用 CTCDecoder 的教程
ASR Inference with CTC Decoder

使用 CTC 解码器进行 ASR 推理

使用 CTC 解码器进行 ASR 推理

方法

__call__

CTCDecoder.__call__(emissions: FloatTensor, lengths: Optional[Tensor] = None) List[List[CTCHypothesis]][source]

执行批量离线解码。

注意

此方法一次性执行离线解码。要执行增量解码,请参阅 decode_step()

参数
  • emissions (torch.FloatTensor) – 形状为 (batch, frame, num_tokens) 的 CPU 张量,存储标签概率分布的序列;声学模型的输出。

  • lengths (TensorNone, 可选) – 形状为 (batch, ) 的 CPU 张量,存储批次中每个音频序列输出张量的有效时间轴长度。

返回

批量中每个音频序列的已排序最佳假设列表。

返回类型

List[List[CTCHypothesis]]

decode_begin

CTCDecoder.decode_begin()[source]

初始化解码器的内部状态。

请参阅 decode_step() 以了解用法。

注意

此方法仅在执行在线解码时需要。在使用 __call__() 进行批量解码时,则不需要。

decode_end

CTCDecoder.decode_end()[source]

完成解码器的内部状态。

请参阅 decode_step() 以了解用法。

注意

此方法仅在执行在线解码时需要。在使用 __call__() 进行批量解码时,则不需要。

decode_step

CTCDecoder.decode_step(emissions: FloatTensor)[source]

在当前内部状态之上执行增量解码。

注意

此方法仅在执行在线解码时需要。在使用 __call__() 进行批量解码时,则不需要。

参数

emissions (torch.FloatTensor) – 形状为 (frame, num_tokens) 的 CPU 张量,存储标签概率分布的序列;声学模型的输出。

示例

>>> decoder = torchaudio.models.decoder.ctc_decoder(...)
>>> decoder.decode_begin()
>>> decoder.decode_step(emission1)
>>> decoder.decode_step(emission2)
>>> decoder.decode_end()
>>> result = decoder.get_final_hypothesis()

get_final_hypothesis

CTCDecoder.get_final_hypothesis() List[CTCHypothesis][source]

获取最终假设

返回

已排序最佳假设列表。

返回类型

List[CTCHypothesis]

注意

此方法仅在执行在线解码时需要。在使用 __call__() 进行批量解码时,则不需要。

idxs_to_tokens

CTCDecoder.idxs_to_tokens(idxs: LongTensor) List[source]

将原始 token ID 映射到相应的 token

参数

idxs (LongTensor) – 从解码器生成的原始 token ID

返回

与输入 ID 对应的 token

返回类型

List

支持结构

CTCHypothesis

class torchaudio.models.decoder.CTCHypothesis(tokens: torch.LongTensor, words: List[str], score: float, timesteps: torch.IntTensor)[source]

表示由 CTC beam search 解码器 CTCDecoder 生成的假设。

使用 CTCHypothesis 的教程
ASR Inference with CTC Decoder

使用 CTC 解码器进行 ASR 推理

使用 CTC 解码器进行 ASR 推理
tokens: LongTensor

预测的 token ID 序列。形状为 (L, ),其中 L 是输出序列的长度。

words: List[str]

预测的单词列表。

注意

如果解码器提供了词汇表,则此属性才适用。如果无词汇表解码,则此属性为空。请改用 tokensidxs_to_tokens()

score: float

与假设对应的分数

timesteps: IntTensor

与 token 对应的时步。形状为 (L, ),其中 L 是输出序列的长度。

CTCDecoderLM

class torchaudio.models.decoder.CTCDecoderLM[source]

语言模型基类,用于创建可与解码器一起使用的自定义语言模型。

使用 CTCDecoderLM 的教程
ASR Inference with CTC Decoder

使用 CTC 解码器进行 ASR 推理

使用 CTC 解码器进行 ASR 推理
abstract start(start_with_nothing: bool) CTCDecoderLMState[source]

初始化或重置语言模型。

参数

start_with_nothing (bool) – 是否以静音 token 开始句子。

返回

起始状态

返回类型

CTCDecoderLMState

abstract score(state: CTCDecoderLMState, usr_token_idx: int) Tuple[CTCDecoderLMState, float][source]

根据当前的 LM 状态和新词评估语言模型。

参数
返回

(CTCDecoderLMState, float)
CTCDecoderLMState

新的 LM 状态

浮点数

score

abstract finish(state: CTCDecoderLMState) Tuple[CTCDecoderLMState, float][source]

根据当前的 LM 状态评估语言模型结束。

参数

state (CTCDecoderLMState) – 当前 LM 状态

返回

(CTCDecoderLMState, float)
CTCDecoderLMState

新的 LM 状态

浮点数

score

CTCDecoderLMState

class torchaudio.models.decoder.CTCDecoderLMState[source]

语言模型状态。

使用 CTCDecoderLMState 的教程
ASR Inference with CTC Decoder

使用 CTC 解码器进行 ASR 推理

使用 CTC 解码器进行 ASR 推理
property children: Dict[int, CTCDecoderLMState]

索引到 LM 状态的映射

child(usr_index: int) CTCDecoderLMState[source]

返回与 usr_index 对应的子状态,如果找不到输入索引,则创建并返回一个新状态。

参数

usr_index (int) – 对应子状态的索引

返回

与 usr_index 对应的子状态

返回类型

CTCDecoderLMState

compare(state: CTCDecoderLMState) CTCDecoderLMState[source]

比较两个语言模型状态。

参数

state (CTCDecoderLMState) – 要比较的 LM 状态

返回

如果状态相同,则为 0,如果 self 较小,则为 -1,如果 self 较大,则为 +1。

返回类型

int

文档

访问全面的 PyTorch 开发者文档

查看文档

教程

为初学者和高级开发者提供深入的教程

查看教程

资源

查找开发资源并让您的问题得到解答

查看资源