36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
import os
|
|
import torch
|
|
import torchaudio
|
|
from lib.audio import audio_dict_to_wav, tts_output_to_audio_dict
|
|
|
|
|
|
def test_audio_dict_to_wav_writes_readable_file(tmp_path, sample_comfy_audio):
|
|
path = audio_dict_to_wav(sample_comfy_audio, dest_dir=str(tmp_path))
|
|
assert os.path.isfile(path)
|
|
waveform, sr = torchaudio.load(path)
|
|
assert sr == sample_comfy_audio["sample_rate"]
|
|
assert waveform.shape[1] == sample_comfy_audio["waveform"].shape[2]
|
|
|
|
|
|
def test_audio_dict_to_wav_returns_unique_paths(tmp_path, sample_comfy_audio):
|
|
p1 = audio_dict_to_wav(sample_comfy_audio, dest_dir=str(tmp_path))
|
|
p2 = audio_dict_to_wav(sample_comfy_audio, dest_dir=str(tmp_path))
|
|
assert p1 != p2
|
|
|
|
|
|
def test_tts_output_to_audio_dict_shape(sample_tts_output):
|
|
audio, sr = sample_tts_output
|
|
result = tts_output_to_audio_dict(audio, sr)
|
|
assert result["sample_rate"] == sr
|
|
waveform = result["waveform"]
|
|
assert waveform.dim() == 3
|
|
assert waveform.shape[0] == 1 # batch
|
|
assert waveform.shape[1] == 1 # channels
|
|
assert waveform.shape[2] == audio.shape[0]
|
|
|
|
|
|
def test_tts_output_preserves_values(sample_tts_output):
|
|
audio, sr = sample_tts_output
|
|
result = tts_output_to_audio_dict(audio, sr)
|
|
assert torch.equal(result["waveform"][0, 0], audio)
|