返回模型
说明文档
🎯 Namo 话轮检测器 v1 - 意大利语
<div align="center">
🚀 Namo 意大利语话轮检测模型
</div>
📋 概述
Namo 话轮检测器是一个专门设计的 AI 模型,旨在解决对话式 AI 中最具挑战性的问题之一:判断用户何时说完话。
这款意大利语专用模型采用先进的自然语言理解技术,可区分:
- ✅ 完整话语(用户已说完)
- 🔄 不完整话语(用户将继续说话)
该模型基于 DistilBERT 架构构建,并经过量化的 ONNX 格式优化,以最小的延迟提供企业级性能。
🔑 主要特性
- 话轮检测专家:检测意大利语语音转录中的话轮结束与继续。
- 低延迟:采用量化 ONNX 优化,推理时间 <13ms。
- 稳健性能:在多样化意大利语话语上达到 86.8% 准确率。
- 易于集成:兼容 Python、ONNX Runtime 和 VideoSDK Agents SDK。
- 企业级就绪:支持实时对话式 AI 和语音助手。
📊 性能指标
<div>
| 指标 | 分数 |
|---|---|
| 🎯 准确率 | 86.82% |
| 📈 F1 分数 | 88.09% |
| 🎪 精确率 | 80.04% |
| 🎭 召回率 | 97.94% |
| ⚡ 延迟 | <13ms |
| 💾 模型大小 | ~135MB |
</div> <img src="./confusion_matrices.png" alt="混淆矩阵" width="600" height="400"/>
📊 在 700+ 条来自多样化对话场景的意大利语话语上进行评估
⚡️ 速度分析
<img src="./performance_analysis.png" alt="性能分析" width="600" height="400"/>
🔧 训练与测试脚本
<div align="center">
</div>
🛠️ 安装
要使用此模型,您需要安装以下库。
pip install onnxruntime transformers huggingface_hub
🚀 快速开始
您可以直接从 Hugging Face 仓库运行推理。
import numpy as np
import onnxruntime as ort
from transformers import AutoTokenizer
from huggingface_hub import hf_hub_download
class TurnDetector:
def __init__(self, repo_id="videosdk-live/Namo-Turn-Detector-v1-Italian"):
"""
通过从 Hugging Face Hub 下载模型和分词器
来初始化检测器。
"""
print(f"Loading model from repo: {repo_id}")
# 从 Hub 下载模型和分词器
# 如果您已登录,身份验证将自动处理
model_path = hf_hub_download(repo_id=repo_id, filename="model_quant.onnx")
self.tokenizer = AutoTokenizer.from_pretrained(repo_id)
# 设置 ONNX Runtime 推理会话
self.session = ort.InferenceSession(model_path)
self.max_length = 512
print("✅ Model and tokenizer loaded successfully.")
def predict(self, text: str) -> tuple:
"""
预测给定的文本话语是否为话轮结束。
返回 (predicted_label, confidence),其中:
- predicted_label: 0 表示"非话轮结束",1 表示"话轮结束"
- confidence: 置信度分数,范围 0 到 1
"""
# 对输入文本进行分词
inputs = self.tokenizer(
text,
truncation=True,
max_length=self.max_length,
return_tensors="np"
)
# 准备 ONNX 模型的输入字典
feed_dict = {
"input_ids": inputs["input_ids"],
"attention_mask": inputs["attention_mask"]
}
# 运行推理
outputs = self.session.run(None, feed_dict)
logits = outputs[0]
probabilities = self._softmax(logits[0])
predicted_label = np.argmax(probabilities)
confidence = float(np.max(probabilities))
return predicted_label, confidence
def _softmax(self, x, axis=None):
if axis is None:
axis = -1
exp_x = np.exp(x - np.max(x, axis=axis, keepdims=True))
return exp_x / np.sum(exp_x, axis=axis, keepdims=True)
# --- 示例用法 ---
if __name__ == "__main__":
detector = TurnDetector()
sentences = [
"È stato spesso visto tirar fuori i favi dai grandi nidi di vespe e di api, così come dai nidi più piccoli dei calabroni.", # 预期:话轮结束
"L'opera che ne falsi del tutto lo spirito è?", # 预期:非话轮结束
]
for sentence in sentences:
predicted_label, confidence = detector.predict(sentence)
result = "End of Turn" if predicted_label == 1 else "Not End of Turn"
print(f"'{sentence}' -> {result} (confidence: {confidence:.3f})")
print("-" * 50)
🤖 VideoSDK Agents 集成
将此话轮检测器直接与 VideoSDK Agents 集成,用于生产级对话式 AI 应用。
from videosdk_agents import NamoTurnDetectorV1, pre_download_namo_turn_v1_model
# 下载模型
pre_download_namo_turn_v1_model(language="it")
# 为 VideoSDK Agents 初始化意大利语话轮检测器
turn_detector = NamoTurnDetectorV1(language="it")
📚 完整集成指南 - 了解如何在 VideoSDK Agents 中使用
NamoTurnDetectorV1
📖 引用
@model{namo_turn_detector_it_2025,
title={Namo Turn Detector v1: Italian},
author={VideoSDK Team},
year={2025},
publisher={Hugging Face},
url={https://huggingface.co/videosdk-live/Namo-Turn-Detector-v1-Italian},
note={ONNX-optimized DistilBERT for turn detection in Italian}
}
📄 许可证
本项目采用 Apache License 2.0 许可 - 详情请参阅 LICENSE 文件。
<div align="center">
由 VideoSDK 团队用 ❤️ 打造
</div>
videosdk-live/Namo-Turn-Detector-v1-Italian
作者 videosdk-live
voice-activity-detection
onnxruntime
↓ 1
♥ 0
创建时间: 2025-09-26 11:06:30+00:00
更新时间: 2025-10-15 07:40:01+00:00
在 Hugging Face 上查看文件 (12)
.gitattributes
LICENSE
README.md
config.json
confusion_matrices.png
model.onnx
ONNX
model_quant.onnx
ONNX
performance_analysis.png
special_tokens_map.json
tokenizer.json
tokenizer_config.json
vocab.txt