CTCDecoder¶
- class torchaudio.models.decoder.CTCDecoder[source]¶
CTC beam search decoder from Flashlight [Kahn et al., 2022]。
注意
要构建解码器,请使用工厂函数
ctc_decoder()
。- 使用
CTCDecoder
的教程
- 使用
方法¶
__call__¶
- CTCDecoder.__call__(emissions: FloatTensor, lengths: Optional[Tensor] = None) List[List[CTCHypothesis]] [source]¶
执行批量离线解码。
注意
此方法一次性执行离线解码。要执行增量解码,请参阅
decode_step()
。- 参数
emissions (torch.FloatTensor) – 形状为 (batch, frame, num_tokens) 的 CPU 张量,存储标签概率分布的序列;声学模型的输出。
lengths (Tensor 或 None, 可选) – 形状为 (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¶
支持结构¶
CTCHypothesis¶
- class torchaudio.models.decoder.CTCHypothesis(tokens: torch.LongTensor, words: List[str], score: float, timesteps: torch.IntTensor)[source]¶
表示由 CTC beam search 解码器
CTCDecoder
生成的假设。- 使用
CTCHypothesis
的教程
- tokens: LongTensor¶
预测的 token ID 序列。形状为 (L, ),其中 L 是输出序列的长度。
- words: List[str]¶
预测的单词列表。
注意
如果解码器提供了词汇表,则此属性才适用。如果无词汇表解码,则此属性为空。请改用
tokens
和idxs_to_tokens()
。
- timesteps: IntTensor¶
与 token 对应的时步。形状为 (L, ),其中 L 是输出序列的长度。
- 使用
CTCDecoderLM¶
- class torchaudio.models.decoder.CTCDecoderLM[source]¶
语言模型基类,用于创建可与解码器一起使用的自定义语言模型。
- 使用
CTCDecoderLM
的教程
- abstract start(start_with_nothing: bool) CTCDecoderLMState [source]¶
初始化或重置语言模型。
- 参数
start_with_nothing (bool) – 是否以静音 token 开始句子。
- 返回
起始状态
- 返回类型
- abstract score(state: CTCDecoderLMState, usr_token_idx: int) Tuple[CTCDecoderLMState, float] [source]¶
根据当前的 LM 状态和新词评估语言模型。
- 参数
state (CTCDecoderLMState) – 当前 LM 状态
usr_token_idx (int) – 单词的索引
- 返回
- (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
的教程
- property children: Dict[int, CTCDecoderLMState]¶
索引到 LM 状态的映射
- child(usr_index: int) CTCDecoderLMState [source]¶
返回与 usr_index 对应的子状态,如果找不到输入索引,则创建并返回一个新状态。
- 参数
usr_index (int) – 对应子状态的索引
- 返回
与 usr_index 对应的子状态
- 返回类型
- compare(state: CTCDecoderLMState) CTCDecoderLMState [source]¶
比较两个语言模型状态。
- 参数
state (CTCDecoderLMState) – 要比较的 LM 状态
- 返回
如果状态相同,则为 0,如果 self 较小,则为 -1,如果 self 较大,则为 +1。
- 返回类型
- 使用