快捷方式

CTCDecoder

class torchaudio.models.decoder.CTCDecoder[source]

来自 Flashlight 的 CTC 束搜索解码器 [Kahn 等人,2022]

This feature supports the following devices: CPU

注意

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

使用 CTCDecoder 的教程
ASR Inference with CTC Decoder

使用 CTC Decoder 进行 ASR 推理

使用 CTC Decoder 进行 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]

将原始标记 ID 映射到相应的标记

参数:

idxs (LongTensor) – 解码器生成的原始标记 ID

返回值:

与输入 ID 对应的标记

返回类型:

列表

支持结构

CTCHypothesis

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

表示由 CTC 束搜索解码器 CTCDecoder 生成的假设。

使用 CTCHypothesis 的教程
ASR Inference with CTC Decoder

使用 CTC Decoder 进行 ASR 推理

使用 CTC Decoder 进行 ASR 推理
tokens: LongTensor

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

words: List[str]

预测单词的列表。

注意

此属性仅在向解码器提供词典时适用。如果在没有词典的情况下进行解码,它将为空。请参阅 tokensidxs_to_tokens() 以获取更多信息。

score: float

与假设相对应的分数

timesteps: IntTensor

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

CTCDecoderLM

class torchaudio.models.decoder.CTCDecoderLM[source]

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

使用 CTCDecoderLM 的教程
ASR Inference with CTC Decoder

使用 CTC Decoder 进行 ASR 推理

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

初始化或重置语言模型。

参数:

start_with_nothing (bool) – 是否以 sil 标记开始句子。

返回值:

起始状态

返回类型:

CTCDecoderLMState

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

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

参数:
返回值:

(CTCDecoderLMState, float)
CTCDecoderLMState

新的 LM 状态

浮点数

分数

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

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

参数:

state (CTCDecoderLMState) – 当前 LM 状态

返回值:

(CTCDecoderLMState, float)
CTCDecoderLMState

新的 LM 状态

浮点数

分数

CTCDecoderLMState

class torchaudio.models.decoder.CTCDecoderLMState[source]

语言模型状态。

使用 CTCDecoderLMState 的教程
ASR Inference with CTC Decoder

使用 CTC Decoder 进行 ASR 推理

使用 CTC Decoder 进行 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 的全面开发者文档

查看文档

教程

获取适合初学者和高级开发人员的深度教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源