快捷方式

CTCDecoder

class torchaudio.models.decoder.CTCDecoder[source]

来自 Flashlight 的 CTC 集束搜索解码器 [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) – CPU 张量,形状为 (batch, frame, num_tokens),存储标签上的概率分布序列;声学模型的输出。

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

返回:

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

返回类型:

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) – CPU 张量,形状为 (frame, num_tokens),存储标签上的概率分布序列;声学模型的输出。

示例

>>> 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 集束搜索解码器 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) – 是否以 sil token 开始句子。

返回:

起始状态

返回类型:

CTCDecoderLMState

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

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

参数:
返回:

(CTCDecoderLMState, float)
CTCDecoderLMState

新的 LM 状态

float

分数

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

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

参数:

state (CTCDecoderLMState) – 当前 LM 状态

返回:

(CTCDecoderLMState, float)
CTCDecoderLMState

新的 LM 状态

float

分数

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 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深度教程

查看教程

资源

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

查看资源