SPEV / examples /turn_decision.py
spragian's picture
Publish standalone SPEV Transformers model
7381480 verified
Raw History Blame Contribute Delete
981 Bytes
"""Evaluate an audio file using the packaged turn-taking question."""
import argparse
import json
from pathlib import Path
import torch
from transformers import AutoModel, AutoProcessor
parser = argparse.ArgumentParser()
parser.add_argument("audio")
parser.add_argument("--model", default=str(Path(__file__).resolve().parents[1]))
args = parser.parse_args()
policy = json.loads((Path(__file__).with_name("turn_policy.json")).read_text())
processor = AutoProcessor.from_pretrained(args.model, trust_remote_code=True)
model = AutoModel.from_pretrained(
args.model,
trust_remote_code=True,
dtype=torch.bfloat16,
device_map="auto",
attn_implementation="sdpa",
)
inputs = processor(audio=args.audio, state={}, questions=policy["questions"])
inputs = inputs.to(model.device, dtype=torch.bfloat16)
with torch.inference_mode():
outputs = model(**inputs)
result = processor.post_process(outputs, questions=policy["questions"])
print(json.dumps(result, indent=2))