Saltar a la navegación

Detección de entidades

Esta guía te muestra cómo usar 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, afecciones médicas o números de la Seguridad Social, que después pueden ocultarse.

Cuando está activada, el modelo detecta tipos de entidades específicos en la transcripción y proporciona 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 PII detectadas en la transcripción, con sus marcas de tiempo exactas.

Integrar 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 admiten los siguientes tipos de entidades para su detección. Puedes detectar grupos completos con las palabras clave de categoría pii, phi, pci, other u offensive_language, o especificar tipos de entidades individuales mediante su etiqueta. Para detectar todos los tipos de entidades, 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 Privacidad de Quebec, APPI
ageNúmeros asociados con la edad de una personaRGPD, HIPAA, Ley de Privacidad de Quebec, APPI
bank_accountNúmeros de cuentas bancarias y equivalentes internacionales, como el IBANCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
cardinalExpresiones numéricas en forma cardinal
credit_cardNúmeros de tarjetas de créditoCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
credit_card_expirationFecha de caducidad de una tarjeta de créditoCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
cvvCódigos de verificación de tarjeta de 3 o 4 dígitos y equivalentesCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
dateFechas concretas del calendario, que pueden incluir días de la semana, fechas, meses o añosHIPAA, Ley de Privacidad de Quebec
date_intervalPeriodos de tiempo más amplios, incluidos rangos de fechas, meses, estaciones, años y décadasHIPAA
dobFechas de nacimientoCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
driver_licenseNúmeros de permisos de conducirCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
email_addressDirecciones de correo electrónicoCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
eventNombres de eventos o festividades
filenameNombres de archivos informáticos, incluida la extensión o la ruta de archivo
genderTérminos que indican identidad de género, incluida la jergaCPRA, 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, incluida la jergaCPRA, RGPD, RGPD sensible, APPI sensible
healthcare_numberNúmeros sanitarios y números de beneficiarios de planes de saludCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
ip_addressDirección IP de Internet, incluidos los formatos IPv4 e IPv6CPRA, RGPD, HIPAA, Ley de 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 Privacidad de Quebec, APPI
location_cityNombres de municipios, incluidos pueblos, localidades y ciudadesCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
location_coordinatePosiciones geográficas indicadas mediante coordenadas de latitud, longitud o elevaciónCPRA, RGPD, HIPAA, Ley de 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 o códigos de correoCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
moneyNombres o cantidades de divisas
nameNombres de personas, sin incluir tratamientos como «Sra.» o «Sr.»CPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
name_givenNombres asignados a una persona, normalmente al nacer; a menudo nombre y segundo nombre en culturas occidentalesCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
name_familyNombres que indican la familia o comunidad de una persona; a menudo apellidos en culturas occidentalesCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
name_medical_professionalNombres que incluyen el título de un profesional médico, como “Doctor”CPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
numerical_piiPII numérica que no pertenece a otras categoríasCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
occupationPuestos de trabajo o profesionesLey de Privacidad de Quebec, APPI
ordinalExpresiones numéricas en forma ordinal
originTérminos que indican nacionalidad, etnia o procedenciaCPRA, RGPD, RGPD sensible, Ley de Privacidad de Quebec, APPI sensible
passport_numberNúmeros de pasaporte emitidos por cualquier paísCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
passwordContraseñas de cuentas, PIN, claves de acceso o respuestas de verificaciónCPRA, APPI
percentExpresiones numéricas como porcentajes
phone_numberNúmeros de teléfono o faxCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
physical_attributeAtributos corporales 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 internacionales equivalentesCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
timeExpresiones que indican horas
urlDirecciones de InternetCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec
usernameNombres de usuario, nombres de inicio de sesión o identificadoresCPRA, 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 Privacidad de Quebec, APPI sensible
drugMedicamentos, vitaminas y suplementosCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI sensible
injuryLesiones corporales, incluidas mutaciones, abortos espontáneos y luxacionesCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI sensible
blood_typeGrupos sanguíneosCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec
medical_processProcesos médicos, incluidos tratamientos, procedimientos y pruebasCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI sensible
clinical_measurementMediciones clínicas, constantes vitales y resultados de laboratorioCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI sensible
statisticsAlias heredado de clinical_measurementHIPAA, Ley de Privacidad de Quebec
EtiquetaDescripciónCumplimiento normativo
credit_cardNúmeros de tarjetas de créditoCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
credit_card_expirationFecha de caducidad de una tarjeta de créditoCPRA, RGPD, HIPAA, Ley de Privacidad de Quebec, APPI
cvvCódigos de verificación de tarjeta de 3 o 4 dígitos y equivalentesCPRA, RGPD, HIPAA, Ley de 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 Privacidad de Quebec, APPI
political_affiliationTérminos que hacen referencia a un partido político, movimiento o ideologíaCPRA, RGPD, RGPD sensible, Ley de Privacidad de Quebec, APPI sensible
religionTérminos que indican afiliación religiosaCPRA, RGPD, RGPD sensible, Ley de Privacidad de Quebec, APPI sensible
routing_numberCódigo 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 archivo
generic_idIdentificadores genéricos que no pertenecen a otras categorías de ID
measurementMedidas físicas y cantidades con unidades
time_durationExpresiones que indican una duración o intervalo de tiempo
EtiquetaDescripciónCumplimiento normativo
very_offensive_languageLenguaje muy ofensivo, incluidos insultos
less_offensive_languageLenguaje ligeramente ofensivo o inapropiado

Ocultación de entidades

Además de detectar entidades, puedes ocultarlas del 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 entidades específicos. Los tipos ocultados deben ser un subconjunto de los tipos detectados.

Cuando la ocultació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 por 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 ocultación de entidades no son compatibles con el estilo de salida multicanal combined.

La ocultación de entidades también funciona con Scribe v2 Realtime: pasa entity_redaction y entity_redaction_mode como parámetros de consulta, en el mismo formato que arriba. Cada transcripción confirmada va seguida de un evento redacted_transcript que contiene el text original y el redacted_text. Consulta la referencia de eventos en tiempo real.

Próximos pasos