实体检测

本指南介绍如何通过文本转语音 API 使用实体检测。

操作指南 · 假设你已完成文本转语音 快速入门。

概述

实体检测功能可检测转录文本中的特定单词和短语,并提供其精确时间戳。此功能可用于检测信用卡号、姓名、医疗状况或社会保障号等信息,随后可将其隐去。

启用后,模型会检测转录文本中的特定实体类型,并提供其精确时间戳。

例如,以下音频:

当指定 "pii"(个人身份信息)作为实体类型时,会输出以下转录文本:

{
"language_code": "eng",
"language_probability": 0.9869821071624756,
"text": "My name is Jill. My date of birth is the 12th of July 1987, and my credit card number is 4242-4242-4242-4242.",
"words": [
{ "text": "My", "start": 0.099, "end": 0.259, "type": "word", "logprob": 0.0 },
{ "text": " ", "start": 0.259, "end": 0.299, "type": "spacing", "logprob": 0.0 },
{ "text": "name", "start": 0.299, "end": 0.42, "type": "word", "logprob": 0.0 },
...
],
"transcription_id": "Y2ZX8AxHUzTPCIualYiE",
"entities": [
{
"text": "Jill",
"entity_type": "name",
"start_char": 11,
"end_char": 15
},
{
"text": "12th of July 1987",
"entity_type": "dob",
"start_char": 41,
"end_char": 58
},
{
"text": "4242-4242-4242-4242",
"entity_type": "credit_card",
"start_char": 89,
"end_char": 108
}
]
}

结果会显示转录文本中检测到的 PII 实体及其精确时间戳。

集成实体检测

通过向 convert 方法传递 entity_detection 参数,即可将实体检测集成到文本转语音 API 中。

import os
from dotenv import load_dotenv
from io import BytesIO
import requests
from elevenlabs.client import ElevenLabs
load_dotenv()
elevenlabs = ElevenLabs(
api_key=os.getenv("ELEVENLABS_API_KEY"),
)
audio_url = (
"https://storage.googleapis.com/eleven-public-cdn/documentation_assets/audio/stt-entity-detection-pii.mp3"
)
response = requests.get(audio_url)
audio_data = BytesIO(response.content)
transcription = elevenlabs.speech_to_text.convert(
file=audio_data,
model_id="scribe_v2", # Model to use
# Entity types to detect, accepts a list of specific entity types or categories.
# To detect all entity types, use the "all" category.
entity_detection=["pii"],
)
print("Entities detected:", transcription.entities)

实体类型

支持检测以下实体类型。你可以使用类别关键字 pii、phi、pci、other 或 offensive_language 检测整个类别,也可以通过标签指定单个实体类型。要检测所有实体类型,请使用 all 类别。

标签说明法规合规性
account_number客户账户或会员识别号码CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
age与个人年龄相关的数字GDPR、HIPAA、Quebec Privacy Act、APPI
bank_account银行账户号码及其国际等效格式,例如 IBANCPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
cardinal基数形式的数值表达
credit_card信用卡号码CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
credit_card_expiration信用卡到期日CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
cvv3 位或 4 位卡片验证码及等效信息CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
date特定日历日期,可包含星期、日期、月份或年份HIPAA、Quebec Privacy Act
date_interval更宽泛的时间段,包括日期范围、月份、季节、年份和年代HIPAA
dob出生日期CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
driver_license驾驶证号码CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
email_address电子邮件地址CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
event活动或节日名称
filename计算机文件名称,包括扩展名或文件路径
gender表示性别认同的术语,包括俚语CPRA、GDPR、GDPR Sensitive、APPI Sensitive
gender_sexuality同时涵盖 gender 和 sexual_orientation 的旧别名CPRA、GDPR、GDPR Sensitive、APPI Sensitive
sexual_orientation表示性取向的术语,包括俚语CPRA、GDPR、GDPR Sensitive、APPI Sensitive
healthcare_number医疗保健号码和健康计划受益人号码CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
ip_addressInternet IP 地址,包括 IPv4 和 IPv6 格式CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
location任何具名地点引用的元类别GDPR、HIPAA、APPI
location_address完整或部分实际邮寄地址CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
location_city市政区域名称,包括村庄、城镇和城市CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
location_coordinate使用纬度、经度和/或海拔坐标表示的地理位置CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
location_country国家名称GDPR、APPI
location_state州、省、领地或都道府县名称GDPR、APPI
location_zipZIP 代码(包括 ZIP+4)、邮政编码或邮编CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
money货币名称和/或金额
name个人姓名,不包括“Mrs.”或“Mr.”等头衔CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
name_given个人通常在出生时获得的名字;在西方文化中通常指名字/中间名CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
name_family表示个人家族或社群的名称;在西方文化中通常指姓氏CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
name_medical_professional包含医疗专业人员头衔的姓名,例如“Doctor”CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
numerical_pii不属于其他类别的数字 PIICPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
occupation职位或职业Quebec Privacy Act、APPI
ordinal序数形式的数值表达
origin表示国籍、族裔或来源的术语CPRA、GDPR、GDPR Sensitive、Quebec Privacy Act、APPI Sensitive
passport_number任何国家签发的护照号码CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
password账户密码、PIN、访问密钥或验证答案CPRA、APPI
percent百分比形式的数值表达
phone_number电话或传真号码CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
physical_attribute显著身体特征,包括表示种族的术语CPRA、GDPR、GDPR Sensitive、APPI Sensitive
ssn社会保障号或国际等效的政府身份证号码CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
time表示时钟时间的表达
urlInternet 地址CPRA、GDPR、HIPAA、Quebec Privacy Act
username用户名、登录名或昵称CPRA、GDPR、APPI
vehicle_id车辆识别号码(VIN)、车辆序列号和车牌号CPRA、GDPR、HIPAA、APPI
标签说明法规合规性
condition医学病症、疾病、综合征、缺陷和障碍名称CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI Sensitive
drug药物、维生素和补充剂CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI Sensitive
injury身体损伤,包括突变、流产和脱臼CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI Sensitive
blood_type血型CPRA、GDPR、HIPAA、Quebec Privacy Act
medical_process医疗过程,包括治疗、程序和检查CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI Sensitive
clinical_measurement临床测量、生命体征和实验室结果CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI Sensitive
statisticsclinical_measurement 的旧别名HIPAA、Quebec Privacy Act
标签说明法规合规性
credit_card信用卡号码CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
credit_card_expiration信用卡到期日CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
cvv3 位或 4 位卡片验证码及等效信息CPRA、GDPR、HIPAA、Quebec Privacy Act、APPI
标签说明法规合规性
language自然语言名称GDPR、GDPR Sensitive、APPI Sensitive
marital_status表示婚姻状况的术语APPI Sensitive
organization组织或组织内部门名称Quebec Privacy Act、APPI
political_affiliation指代政党、运动或意识形态的术语CPRA、GDPR、GDPR Sensitive、Quebec Privacy Act、APPI Sensitive
religion表示宗教归属的术语CPRA、GDPR、GDPR Sensitive、Quebec Privacy Act、APPI Sensitive
routing_number与银行或金融机构关联的路由号码
zodiac_sign黄道十二宫星座名称
product_or_service商业产品或服务名称
food_or_beverage食物、饮料和菜肴名称
document_reference对文档、案件编号或文件标识符的引用
generic_id不属于其他 ID 类别的通用标识符
measurement带单位的物理测量值和数量
time_duration表示时间长度或跨度的表达
标签说明法规合规性
very_offensive_language强烈冒犯性语言,包括侮辱性用语
less_offensive_language轻微冒犯性或不当语言

实体脱敏

除了检测实体外,还可以通过 entity_redaction 参数从转录文本中将其脱敏。其接受的格式与 entity_detection 相同:all、 类别关键字或特定实体类型列表。脱敏类型必须是检测类型的子集。

启用脱敏后,转录文本和词级输出中的匹配实体文本都会替换为标记, 响应中不会返回 entities 字段。

transcription = elevenlabs.speech_to_text.convert(
file=audio_file,
model_id="scribe_v2",
entity_detection=["pii"],
entity_redaction=["pii"],
entity_redaction_mode="enumerated_entity_type",
)
print(transcription.text)
# "Hi {NAME_0}, your card ending in {CREDIT_CARD_0} was declined."

entity_redaction_mode 参数控制标记格式:

模式标记示例
redacted每个实体均使用 {REDACTED}Hi {REDACTED}
entity_type用花括号包裹的实体类型Hi {NAME}
enumerated_entity_type实体类型加出现次数计数器Hi {NAME_0}(默认)

combined 多声道输出样式不支持实体检测和脱敏。

后续步骤