Views
No views yet
pip install git+https://github.com/huggingface/transformers1from datasets import Audio, load_dataset
2from transformers import AutoFeatureExtractor, AutoModel
3
4model_id = "HKUSTAudio/xcodec2-hf"
5model = AutoModel.from_pretrained(model_id, device_map="auto")
6feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)
7
8dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
9dataset = dataset.cast_column("audio", Audio(sampling_rate=feature_extractor.sampling_rate))
10audio = dataset[0]["audio"]["array"]
11inputs = feature_extractor(audio=audio, sampling_rate=feature_extractor.sampling_rate, return_tensors="pt").to(
12 model.device, model.dtype
13)
14print("Input waveform shape:", inputs["input_values"].shape)
15# Input waveform shape: torch.Size([1, 1, 93760])
16
17# encoder and decoder
18audio_codes = model.encode(**inputs).audio_codes
19print("Audio codes shape:", audio_codes.shape)
20# Audio codes shape: torch.Size([1, 1, 293])
21audio_values = model.decode(audio_codes).audio_values
22print("Audio values shape:", audio_values.shape)
23# Audio values shape: torch.Size([1, 1, 93760])
24
25# Equivalently, you can do encoding and decoding in one step
26model_output = model(**inputs)
27audio_codes = model_output.audio_codes
28audio_values = model_output.audio_values1from datasets import Audio, load_dataset
2from transformers import AutoFeatureExtractor, AutoModel
3
4batch_size = 2
5model_id = "HKUSTAudio/xcodec2-hf"
6model = AutoModel.from_pretrained(model_id, device_map="auto")
7feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)
8
9dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
10dataset = dataset.cast_column("audio", Audio(sampling_rate=feature_extractor.sampling_rate))
11audios = [dataset[i]["audio"]["array"] for i in range(batch_size)]
12inputs = feature_extractor(audio=audios, sampling_rate=feature_extractor.sampling_rate, return_tensors="pt").to(
13 model.device, model.dtype
14)
15print("Input waveform shape:", inputs["input_values"].shape)
16# Input waveform shape: torch.Size([2, 1, 93760])
17
18# encoder and decoder
19encoder_output = model.encode(**inputs)
20audio_codes = encoder_output.audio_codes
21print("Audio codes shape:", audio_codes.shape)
22# Audio codes shape: torch.Size([2, 1, 293])
23audio_values = model.decode(audio_codes).audio_values
24print("Audio values shape:", audio_values.shape)
25# Audio values shape: torch.Size([2, 1, 93760])
26
27# Equivalently, you can do encoding and decoding in one step
28model_output = model(**inputs)
29audio_codes = model_output.audio_codes
30audio_values = model_output.audio_valuestorch.compiletorch.compile. The first few calls will be slower due to compilation overhead, but subsequent calls will be faster.1import torch
2from datasets import Audio, load_dataset
3from transformers import AutoFeatureExtractor, AutoModel
4
5batch_size = 4
6model_id = "HKUSTAudio/xcodec2-hf"
7model = AutoModel.from_pretrained(model_id, device_map="auto")
8feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)
9
10dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
11dataset = dataset.cast_column("audio", Audio(sampling_rate=feature_extractor.sampling_rate))
12audios = [dataset[i]["audio"]["array"] for i in range(batch_size)]
13inputs = feature_extractor(
14 audio=audios, sampling_rate=feature_extractor.sampling_rate, padding=True, return_tensors="pt"
15).to(model.device, model.dtype)
16
17compiled_model = torch.compile(model, fullgraph=True)
18
19# Warmup (includes compilation on first call)
20for _ in range(10):
21 with torch.inference_mode():
22 _ = compiled_model(**inputs)
23
24with torch.inference_mode():
25 output = compiled_model(**inputs)
26print("Audio values shape:", output.audio_values.shape)