"vllm/platforms/xpu.py" did not exist on "d86f6b2afb006ea4b4b14a49a58f64bf3b952de6"
audio.py 908 Bytes
Newer Older
1
from dataclasses import dataclass
2
from typing import Literal
3
4
from urllib.parse import urljoin

5
import numpy.typing as npt
6

7
8
9
10
11
12
13
14
from vllm.utils import PlaceholderModule

from .base import VLLM_S3_BUCKET_URL, get_vllm_public_assets

try:
    import librosa
except ImportError:
    librosa = PlaceholderModule("librosa")  # type: ignore[assignment]
15
16
17
18
19
20
21
22
23

ASSET_DIR = "multimodal_asset"


@dataclass(frozen=True)
class AudioAsset:
    name: Literal["winning_call", "mary_had_lamb"]

    @property
24
    def audio_and_sample_rate(self) -> tuple[npt.NDArray, int]:
25
26
        audio_path = get_vllm_public_assets(filename=f"{self.name}.ogg",
                                            s3_prefix=ASSET_DIR)
27
28
29
        y, sr = librosa.load(audio_path, sr=None)
        assert isinstance(sr, int)
        return y, sr
30
31
32

    @property
    def url(self) -> str:
33
        return urljoin(VLLM_S3_BUCKET_URL, f"{ASSET_DIR}/{self.name}.ogg")