    def decode(self, vq_ids):
        """vq_ids.shape: [8, B, T],
        returns: [B, 1, T]"""
        if self.use_speechtokenizer:
            # infer speechtokenizer
            return self.codec_encoder.decode(vq_ids)  # [B, 1, T]
        else:
            if not self.use_vocos:
                # vocos decoder
                return self.codec_encoder.decode([(vq_ids.transpose(0, 1), None)])
            else:
                # encodec decoder
                features = self.codec_decoder.codes_to_features(vq_ids.squeeze(1))
                bandwidth_id = torch.tensor([2], device=vq_ids.device)
                return self.codec_decoder.decode(
                    features, bandwidth_id=bandwidth_id
                ).unsqueeze(0)
vq_ids.shape: [8, B, T],
returns: [B, 1, T]
models/tts/valle_v2/valle_inference.py