Views
No views yet
pip install transformers torch1import torch
2import numpy as np
3from transformers import AutoFeatureExtractor
4from transformers.models.qwen2_audio.modeling_qwen2_audio import Qwen2AudioEncoder
5from transformers.models.qwen2_audio.configuration_qwen2_audio import Qwen2AudioEncoderConfig
6
7# Load model
8model = Qwen2AudioEncoder.from_pretrained("Atotti/AFWhisper")
9model = model.to("cuda", dtype=torch.bfloat16)
10model.eval()
11
12# Load feature extractor (from Qwen2-Audio)
13feature_extractor = AutoFeatureExtractor.from_pretrained("Qwen/Qwen2-Audio-7B")
14
15# Load audio (16kHz, 30s fixed length)
16import librosa
17audio, sr = librosa.load("audio.wav", sr=16000)
18
19# Pad/trim to 30 seconds
20target_len = 16000 * 30
21if len(audio) < target_len:
22 audio = np.pad(audio, (0, target_len - len(audio)))
23else:
24 audio = audio[:target_len]
25
26# Extract features
27inputs = feature_extractor([audio], sampling_rate=16000, return_tensors="pt")
28input_features = inputs.input_features.to("cuda", dtype=torch.bfloat16)
29
30# Encode
31with torch.no_grad():
32 output = model(input_features=input_features)
33 features = output.last_hidden_state # [1, T, 1280]
34
35print(f"Features shape: {features.shape}")
36
37# Mean pooling for utterance-level embedding
38embedding = features.mean(dim=1) # [1, 1280][batch, time_steps, 1280] - 時系列特徴量[batch, 1280] - 発話レベル埋め込み