许可证:Apache-2.0
流程标签:文本生成
标签:
TEN话轮检测系统
全双工会话通信中的话轮检测技术
简介
TEN话轮检测系统 是一款专为人机自然动态交互设计的智能话轮检测模型。该技术攻克了人机对话中最具挑战性的难题——精准识别自然话轮转换信号,实现上下文感知的合理插话。TEN通过深度理解会话语境与语言模式,显著提升AI对话的自然流畅度。
TEN话轮检测系统 将用户文本智能归类为三种状态:
完整话轮(finished):用户完成完整表达并期待回应。示例:"你好,我想咨询订单问题"
等待确认(wait):存在歧义的表达,系统无法确定是否还有后续内容。示例:"这次对话需要立刻结束"
未完成话轮(unfinished):明显中断的表述,用户暂歇但意图继续。示例:"您好,我想问一下关于..."
基于这三态分类体系,TEN系统能智能管理话轮转换,在保持对话流畅性的同时减少唐突打断。
本系统采用基于Qwen2.5-7B Transformer架构的多层次语义分析模型。
核心特性
-
语境感知的话轮管理
通过分析语言模式与语义上下文,精准识别话轮结束点。该能力支持智能插话决策,确保打断行为符合对话情境。
-
多语言话轮检测
全面支持中英文双语环境,精准识别跨语言会话中的话轮转换信号。
-
卓越性能表现
在公开测试集上,TEN各项指标均显著优于开源解决方案。
开源数据集
我们公开了TEN话轮检测测试集,包含专为评估AI对话系统话轮检测能力设计的中英文双语语料,由三个部分组成:
wait.txt:包含请求暂停或终止对话的表述
unfinished.txt:收录不完整的中断对话
finished.txt:涵盖多领域的完整对话输入
性能对比
我们在测试集上对多个开源模型进行了全面评估:
语言 |
模型 |
完整话轮 准确率 |
未完成话轮 准确率 |
等待确认 准确率 |
英语 |
Model A |
59.74% |
86.46% |
不适用 |
英语 |
Model B |
71.61% |
96.88% |
不适用 |
英语 |
TEN系统 |
90.64% |
98.44% |
91% |
语言 |
模型 |
完整话轮 准确率 |
未完成话轮 准确率 |
等待确认 准确率 |
中文 |
Model B |
74.63% |
88.89% |
不适用 |
中文 |
TEN系统 |
98.90% |
92.74% |
92% |
说明:
- Model A不支持中文处理
- Model A/B均不支持"等待确认"状态检测
快速开始
项目已开源至GitHub:TEN-framework/ten-turn-detection
安装
pip install "transformers>=4.30.0"
pip install "torch>=2.0.0"
模型权重
模型已发布于HuggingFace平台
推理示例
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = 'TEN-framework/TEN_Turn_Detection'
model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True, torch_dtype=torch.bfloat16)
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = model.cuda()
model.eval()
def analyze_text(text, system_prompt=""):
inf_messages = [{"role":"system", "content":system_prompt}] + [{"role":"user", "content":text}]
input_ids = tokenizer.apply_chat_template(
inf_messages,
add_generation_prompt=True,
return_tensors="pt"
).cuda()
with torch.no_grad():
outputs = model.generate(
input_ids,
max_new_tokens=1,
do_sample=True,
top_p=0.1,
temperature=0.1,
pad_token_id=tokenizer.eos_token_id
)
response = outputs[0][input_ids.shape[-1]:]
return tokenizer.decode(response, skip_special_tokens=True)
text = "您好,我想咨询"
result = analyze_text(text)
print(f"输入文本:'{text}'")
print(f"检测结果:'{result}'")
引用
如使用TEN话轮检测系统,请引用:
@misc{TEN_Turn_Detection,
author = {TEN技术团队},
title = {TEN话轮检测系统:全双工会话通信中的话轮检测技术},
year = {2025},
url = {https://github.com/TEN-framework/ten-turn-detection},
}
许可
本项目采用Apache 2.0开源协议。