class_docstr: SpeechEncoder encodes speech into streams of (pseudo-)units, unit durations,
  and, optionally, F0.
class_docstr_tok: ["SpeechEncoder","encodes","speech","into","streams","of","(","pseudo-",")","units",",","unit","durations",",","and",",","optionally",",","F0","."]
docstr: Returns:
      float: F0 frames per unit frame
docstr_tok: ["Returns",":","float",":","F0","frames","per","unit","frame"]
code: def f0_code_ratio(self) -> float:
      """
      Returns:
          float: F0 frames per unit frame
      """
      return (
          self.code_hop_size
          / self.expected_sample_rate
          / F0_FRAME_SPACE
      )
  
file_path: textlesslib/textless/data/speech_encoder.py
imports: import torch
  import torch.nn
  import torchaudio
  from typing import Optional, Callable, Dict
  from textless import dispatch_dense_model, dispatch_quantizer
  from textless import dispatch_dense_model
  from textless.data.f0_preprocess import get_f0, align_f0_to_durations, F0_FRAME_SPACE
  from .collater_utils import wrap_bos_eos
label_desc: Use image node_id 5 for calling the SpeechEncoder obj's underlying member method code with example usage: obj.f0_code_ratio() and returns: unknown