File size: 782 Bytes
f6b56a2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import scipy
import numpy as np
import torchaudio
import torch
from pathlib import Path
from typing import Tuple


def load_raw_audio(path: str) -> np.array:
    assert path.exists(), f"Audio path {path} does not exist"
    rate, signal = scipy.io.wavfile.read(path)
    return rate, signal


def load_audio_tensor(path: Path, device=None) -> Tuple[torch.Tensor, int]:
    assert path.exists(), f"Audio path {path} does not exist"
    signal, rate = torchaudio.load(str(path))
    if device is not None:
        signal = signal.to(device)
    return signal, rate


def save_audio_tensor(path: Path, signal: torch.Tensor, sampling_rate: int):
    torchaudio.save(
        str(path),
        signal.detach().cpu(),
        sample_rate=sampling_rate,
        channels_first=True
    )