Detección de entidades

Esta guía te muestra cómo utilizar la detección de entidades con la API de Voz a Texto.

Guía práctica · Da por hecho que has completado la guía de inicio rápido de Voz a Texto .

Descripción general

La detección de entidades es una función que te permite detectar palabras y frases específicas en la transcripción, proporcionando sus marcas de tiempo exactas. Resulta útil para detectar números de tarjetas de crédito, nombres, condiciones médicas o números de la Seguridad Social que luego pueden ocultarse.

Cuando está activada, el modelo detectará tipos de entidades específicos en la transcripción y proporcionará sus marcas de tiempo exactas.

Por ejemplo, el siguiente audio:

Genera la siguiente transcripción cuando especificamos "pii" (información de identificación personal) como tipo de entidad:

{
"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
}
]
}

El resultado muestra las entidades de información de identificación personal detectadas en la transcripción, con sus marcas de tiempo exactas.

Integración de la detección de entidades

La detección de entidades se integra en la API de Voz a Texto pasando el parámetro entity_detection al método convert.

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)

Tipos de entidades

Se pueden detectar los siguientes tipos de entidades. Puedes detectar grupos completos usando las palabras clave de categoría pii, phi, pci, other u offensive_language, o especificar tipos de entidad individuales mediante su etiqueta. Para detectar todos los tipos de entidad, usa la categoría all.

EtiquetaDescripciónCumplimiento normativo
account_numberNúmero de identificación de cuenta de cliente o afiliaciónCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
ageNúmeros asociados a la edad de una personaRGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
bank_accountNúmeros de cuentas bancarias y equivalentes internacionales, como el IBANCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
cardinalExpresiones numéricas en forma cardinal
credit_cardNúmeros de tarjetas de créditoCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
credit_card_expirationFecha de caducidad de una tarjeta de créditoCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
cvvCódigos de verificación de tarjeta de 3 o 4 dígitos y equivalentesCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
dateFechas concretas del calendario, que pueden incluir días de la semana, fechas, meses o añosHIPAA, Ley de Protección de la Privacidad de Quebec
date_intervalPeríodos más amplios, incluidos intervalos de fechas, meses, estaciones, años y décadasHIPAA
dobFechas de nacimientoCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
driver_licenseNúmeros de permisos de conducirCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
email_addressDirecciones de correo electrónicoCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
eventNombres de eventos o festividades
filenameNombres de archivos informáticos, incluida la extensión o la ruta del archivo
genderTérminos que indican identidad de género, incluidos términos coloquialesCPRA, RGPD, RGPD sensible, APPI sensible
gender_sexualityAlias heredado que abarca tanto gender como sexual_orientationCPRA, RGPD, RGPD sensible, APPI sensible
sexual_orientationTérminos que indican orientación sexual, incluidos términos coloquialesCPRA, RGPD, RGPD sensible, APPI sensible
healthcare_numberNúmeros sanitarios y números de beneficiario de planes de saludCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
ip_addressDirección IP de Internet, incluidos los formatos IPv4 e IPv6CPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
locationMetaclase para cualquier referencia de ubicación con nombreRGPD, HIPAA, APPI
location_addressDirecciones postales físicas completas o parcialesCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
location_cityNombres de municipios, incluidos pueblos, localidades y ciudadesCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
location_coordinatePosiciones geográficas indicadas mediante coordenadas de latitud, longitud o elevaciónCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
location_countryNombres de paísesRGPD, APPI
location_stateNombres de estados, provincias, territorios o prefecturasRGPD, APPI
location_zipCódigos ZIP (incluido ZIP+4), códigos postales u otros códigos de correoCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
moneyNombres o importes de divisas
nameNombres de personas, sin incluir títulos personales como «Sra.» o «Sr.»CPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
name_givenNombres dados a una persona, normalmente al nacer; suelen ser nombre y segundo nombre en culturas occidentalesCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
name_familyNombres que indican la familia o comunidad de una persona; suelen ser apellidos en culturas occidentalesCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
name_medical_professionalNombres que incluyen el título de un profesional sanitario, como «Doctor»CPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
numerical_piiPII numérica que no entra en otras categoríasCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
occupationPuestos de trabajo o profesionesLey de Protección de la Privacidad de Quebec, APPI
ordinalExpresiones numéricas en forma ordinal
originTérminos que indican nacionalidad, etnia o procedenciaCPRA, RGPD, RGPD sensible, Ley de Protección de la Privacidad de Quebec, APPI sensible
passport_numberNúmeros de pasaporte emitidos por cualquier paísCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
passwordContraseñas de cuentas, PIN, claves de acceso o respuestas de verificaciónCPRA, APPI
percentExpresiones numéricas en forma de porcentajes
phone_numberNúmeros de teléfono o faxCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
physical_attributeAtributos físicos distintivos, incluidos términos que indican razaCPRA, RGPD, RGPD sensible, APPI sensible
ssnNúmeros de la Seguridad Social o números de identificación gubernamental equivalentes internacionalesCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
timeExpresiones que indican horas
urlDirecciones de InternetCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec
usernameNombres de usuario, nombres de inicio de sesión o aliasCPRA, RGPD, APPI
vehicle_idNúmeros de identificación de vehículos (VIN), números de serie de vehículos y matrículasCPRA, RGPD, HIPAA, APPI
EtiquetaDescripciónCumplimiento normativo
conditionNombres de afecciones médicas, enfermedades, síndromes, déficits y trastornosCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI sensible
drugMedicamentos, vitaminas y suplementosCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI sensible
injuryLesiones físicas, incluidas mutaciones, abortos espontáneos y dislocacionesCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI sensible
blood_typeGrupos sanguíneosCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec
medical_processProcesos médicos, incluidos tratamientos, procedimientos y pruebasCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI sensible
clinical_measurementMediciones clínicas, constantes vitales y resultados de laboratorioCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI sensible
statisticsAlias heredado para clinical_measurementHIPAA, Ley de Protección de la Privacidad de Quebec
EtiquetaDescripciónCumplimiento normativo
credit_cardNúmeros de tarjetas de créditoCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
credit_card_expirationFecha de caducidad de una tarjeta de créditoCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
cvvCódigos de verificación de tarjeta de 3 o 4 dígitos y equivalentesCPRA, RGPD, HIPAA, Ley de Protección de la Privacidad de Quebec, APPI
EtiquetaDescripciónCumplimiento normativo
languageNombres de lenguas naturalesRGPD, RGPD sensible, APPI sensible
marital_statusTérminos que indican estado civilAPPI sensible
organizationNombres de organizaciones o departamentos dentro de una organizaciónLey de Protección de la Privacidad de Quebec, APPI
political_affiliationTérminos que hacen referencia a un partido político, movimiento o ideologíaCPRA, RGPD, RGPD sensible, Ley de Protección de la Privacidad de Quebec, APPI sensible
religionTérminos que indican afiliación religiosaCPRA, RGPD, RGPD sensible, Ley de Protección de la Privacidad de Quebec, APPI sensible
routing_numberNúmero de ruta asociado a un banco o institución financiera
zodiac_signNombres de signos del zodiaco
product_or_serviceNombres de productos o servicios comerciales
food_or_beverageNombres de alimentos, bebidas y platos
document_referenceReferencias a documentos, números de caso o identificadores de archivos
generic_idIdentificadores genéricos que no entran en otras categorías de ID
measurementMediciones físicas y cantidades con unidades
time_durationExpresiones que indican una duración o período de tiempo
EtiquetaDescripciónCumplimiento normativo
very_offensive_languageLenguaje muy ofensivo, incluidos insultos
less_offensive_languageLenguaje ligeramente ofensivo o inapropiado

Redacción de entidades

Además de detectar entidades, puedes ocultarlas en el texto de la transcripción con el parámetro entity_redaction. Acepta el mismo formato que entity_detection: all, una palabra clave de categoría o una lista de tipos de entidad específicos. Los tipos ocultados deben ser un subconjunto de los tipos detectados.

Cuando la redacción está activada, el texto de las entidades coincidentes se sustituye por un marcador tanto en el texto de la transcripción como en la salida a nivel de palabra, y el campo entities no se devuelve en la respuesta.

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."

El parámetro entity_redaction_mode controla el formato del marcador:

ModoMarcadorEjemplo
redacted{REDACTED} para cada entidadHi {REDACTED}
entity_typeEl tipo de entidad entre llavesHi {NAME}
enumerated_entity_typeEl tipo de entidad más un contador de aparicionesHi {NAME_0} (predeterminado)

La detección y redacción de entidades no son compatibles con el estilo de salida multicanal combined.

Próximos pasos