File size: 1,356 Bytes
a3e05e8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import sys
import torch
sys.path.append('.')
from modules.audio_tokenizer.audio_tokenizer import get_audio_tokenizer
from modules.audio_detokenizer.audio_detokenizer import get_audio_detokenizer, detokenize
import torchaudio
import librosa

if __name__ == '__main__':
    audio_tokenizer = get_audio_tokenizer()
    audio_detokenizer = get_audio_detokenizer()

    input_wav_16k, _ = librosa.load("en_prompt0.wav", sr=16000)
    input_wav_24k, _ = librosa.load("en_prompt0.wav", sr=24000)

    prompt_sec = 1
    prompt_wav_16k = input_wav_16k[:16000*prompt_sec]
    prompt_wav_24k = input_wav_24k[:24000*prompt_sec]
    input_wav_16k = input_wav_16k[16000*prompt_sec:]
    input_wav_24k = input_wav_24k[24000*prompt_sec:]

    prompt_wav_24k = torch.tensor(prompt_wav_24k)[None, :].cuda()
    prompt_wav_16k = torch.tensor(prompt_wav_16k)[None, :].cuda()
    input_wav_24k = torch.tensor(input_wav_24k)[None, :].cuda()
    input_wav_16k = torch.tensor(input_wav_16k)[None, :].cuda()

    semantic_token = audio_tokenizer.tokenize(input_wav_16k)
    prompt_semantic_token = audio_tokenizer.tokenize(prompt_wav_16k)

    recon_wav = detokenize(audio_detokenizer, semantic_token, prompt_wav_24k, prompt_semantic_token)
    print(recon_wav.shape)    
    torchaudio.save("test/tmp_recon_en_prompt0.wav", recon_wav.cpu(), 24000)

    print("All tests passed!")