Views
No views yet
1from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
3
4# Load model
5model = AutoModelForCausalLM.from_pretrained("Moustafa3092/livekit-turn-detector-arabic")
6tokenizer = AutoTokenizer.from_pretrained("Moustafa3092/livekit-turn-detector-arabic", trust_remote_code=True)
7
8# Predict EOU
9def predict_eou(text: str) -> float:
10 formatted = f"<|im_start|>user\n{text}"
11 inputs = tokenizer(formatted, return_tensors="pt", add_special_tokens=False)
12
13 with torch.no_grad():
14 logits = model(**inputs).logits[0, -1, :]
15 probs = torch.softmax(logits, dim=-1)
16 eou_prob = probs[tokenizer.convert_tokens_to_ids("<|im_end|>")]
17
18 return eou_prob.item()
19
20# Test
21print(predict_eou("شكرا جزيلا")) # Should be high (complete)
22print(predict_eou("اممممم")) # Should be low (incomplete)1# Convert model to ONNX format for production
2# See deployment documentation1from livekit.agents import WorkerOptions, cli
2from livekit.plugins import turn_detector
3
4# Configure with your fine-tuned model
5turn_detector.configure(model_path="path/to/model.onnx")1@misc{livekit-turn-detector-arabic,
2 author = {Moustafa3092},
3 title = {LiveKit Turn Detector - Arabic},
4 year = {2024},
5 publisher = {HuggingFace},
6 url = {https://huggingface.co/Moustafa3092/livekit-turn-detector-arabic}
7}