32 lines
812 B
Python
32 lines
812 B
Python
from __future__ import annotations
|
|
|
|
import torch
|
|
|
|
from dots_tts.utils.audio import extract_fbank, high_quality_resample
|
|
|
|
_SPEAKER_FBANK_SAMPLE_RATE = 16000
|
|
_SPEAKER_FBANK_N_MELS = 80
|
|
_SPEAKER_FBANK_MEAN_NORM = True
|
|
_SPEAKER_FBANK_DITHER = 0.0
|
|
|
|
|
|
def extract_speaker_fbank(
|
|
waveform: torch.Tensor,
|
|
*,
|
|
sample_rate: int,
|
|
) -> torch.Tensor:
|
|
feature_input = waveform
|
|
if sample_rate != _SPEAKER_FBANK_SAMPLE_RATE:
|
|
feature_input = high_quality_resample(
|
|
waveform,
|
|
orig_sr=sample_rate,
|
|
target_sr=_SPEAKER_FBANK_SAMPLE_RATE,
|
|
)
|
|
return extract_fbank(
|
|
feature_input,
|
|
sample_rate=_SPEAKER_FBANK_SAMPLE_RATE,
|
|
n_mels=_SPEAKER_FBANK_N_MELS,
|
|
dither=_SPEAKER_FBANK_DITHER,
|
|
mean_norm=_SPEAKER_FBANK_MEAN_NORM,
|
|
)
|