Détection d’entités

Ce guide vous explique comment utiliser la détection d’entités avec l’API Speech to Text.

Guide pratique · Suppose que vous avez terminé le guide de démarrage rapide Speech to Text.

Présentation

La détection d’entités est une fonctionnalité qui vous permet de détecter des mots et expressions spécifiques dans la transcription, en fournissant leurs horodatages exacts. Elle est utile pour détecter des numéros de carte bancaire, des noms, des pathologies ou des numéros de sécurité sociale, qui peuvent ensuite être masqués.

Lorsqu’elle est activée, le modèle détecte des types d’entités spécifiques dans la transcription et fournit leurs horodatages exacts.

Par exemple, l’audio suivant :

Produit la transcription suivante lorsque nous spécifions "pii" (informations personnelles identifiables) comme type d’entité :

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

Le résultat affiche les entités PII détectées dans la transcription, avec leurs horodatages exacts.

Intégrer la détection d’entités

La détection d’entités s’intègre à l’API Speech to Text en transmettant le paramètre entity_detection à la méthode 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)

Types d’entités

Les types d’entités suivants sont pris en charge pour la détection. Vous pouvez détecter des groupes entiers à l’aide des mots-clés de catégorie pii, phi, pci, other ou offensive_language, ou spécifier des types d’entités individuels à l’aide de leur libellé. Pour détecter tous les types d’entités, utilisez la catégorie all.

LibelléDescriptionConformité réglementaire
account_numberNuméro d’identification de compte client ou d’adhésionCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
ageNombres associés à l’âge d’une personneRGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
bank_accountNuméros de compte bancaire et équivalents internationaux, tels que l’IBANCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
cardinalExpressions numériques sous forme cardinale
credit_cardNuméros de carte bancaireCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
credit_card_expirationDate d’expiration d’une carte bancaireCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
cvvCodes de vérification de carte à 3 ou 4 chiffres et équivalentsCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
dateDates calendaires précises, pouvant inclure des jours de la semaine, des dates, des mois ou des annéesHIPAA, loi québécoise sur la protection de la vie privée
date_intervalPériodes plus larges, y compris des plages de dates, mois, saisons, années et décenniesHIPAA
dobDates de naissanceCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
driver_licenseNuméros de permis de conduireCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
email_addressAdresses emailCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
eventNoms d’événements ou de jours fériés
filenameNoms de fichiers informatiques, y compris l’extension ou le chemin de fichier
genderTermes indiquant l’identité de genre, y compris des termes d’argotCPRA, RGPD, RGPD sensible, APPI sensible
gender_sexualityAlias historique couvrant à la fois gender et sexual_orientationCPRA, RGPD, RGPD sensible, APPI sensible
sexual_orientationTermes indiquant l’orientation sexuelle, y compris des termes d’argotCPRA, RGPD, RGPD sensible, APPI sensible
healthcare_numberNuméros de santé et numéros de bénéficiaire de régime de santéCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
ip_addressAdresse IP Internet, y compris les formats IPv4 et IPv6CPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
locationMétaclasse pour toute référence à un lieu nomméRGPD, HIPAA, APPI
location_addressAdresses postales physiques complètes ou partiellesCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
location_cityNoms de municipalités, y compris villages, bourgs et villesCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
location_coordinatePositions géographiques référencées par des coordonnées de latitude, longitude et/ou altitudeCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
location_countryNoms de paysRGPD, APPI
location_stateNoms d’États, provinces, territoires ou préfecturesRGPD, APPI
location_zipCodes ZIP, y compris ZIP+4, codes postaux ou codes de distributionCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
moneyNoms et/ou montants de devises
nameNoms de personnes, à l’exclusion des titres personnels tels que « Mme » ou « M. »CPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
name_givenPrénoms attribués à une personne, généralement à la naissance, souvent prénom(s) en OccidentCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
name_familyNoms indiquant la famille ou la communauté d’une personne, souvent le nom de famille en OccidentCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
name_medical_professionalNoms incluant le titre d’un professionnel de santé, tel que « Docteur »CPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
numerical_piiInformations personnelles identifiables numériques ne relevant pas d’autres catégoriesCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
occupationIntitulés de poste ou professionsloi québécoise sur la protection de la vie privée, APPI
ordinalExpressions numériques sous forme ordinale
originTermes indiquant la nationalité, l’origine ethnique ou la provenanceCPRA, RGPD, RGPD sensible, loi québécoise sur la protection de la vie privée, APPI sensible
passport_numberNuméros de passeport, délivrés par tout paysCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
passwordMots de passe de compte, codes PIN, clés d’accès ou réponses de vérificationCPRA, APPI
percentExpressions numériques sous forme de pourcentages
phone_numberNuméros de téléphone ou de faxCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
physical_attributeCaractéristiques physiques distinctives, y compris les termes indiquant la raceCPRA, RGPD, RGPD sensible, APPI sensible
ssnNuméros de sécurité sociale ou numéros d’identification gouvernementaux internationaux équivalentsCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
timeExpressions indiquant des heures
urlAdresses InternetCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée
usernameNoms d’utilisateur, identifiants de connexion ou pseudonymesCPRA, RGPD, APPI
vehicle_idNuméros d’identification de véhicule (VIN), numéros de série de véhicule et numéros de plaque d’immatriculationCPRA, RGPD, HIPAA, APPI
LibelléDescriptionConformité réglementaire
conditionNoms de pathologies, maladies, syndromes, déficiences et troubles médicauxCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI sensible
drugMédicaments, vitamines et compléments alimentairesCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI sensible
injuryBlessures corporelles, y compris mutations, fausses couches et luxationsCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI sensible
blood_typeGroupes sanguinsCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée
medical_processProcessus médicaux, y compris traitements, procédures et examensCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI sensible
clinical_measurementMesures cliniques, constantes vitales et résultats de laboratoireCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI sensible
statisticsAlias historique de clinical_measurementHIPAA, loi québécoise sur la protection de la vie privée
LibelléDescriptionConformité réglementaire
credit_cardNuméros de carte bancaireCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
credit_card_expirationDate d’expiration d’une carte bancaireCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
cvvCodes de vérification de carte à 3 ou 4 chiffres et équivalentsCPRA, RGPD, HIPAA, loi québécoise sur la protection de la vie privée, APPI
LibelléDescriptionConformité réglementaire
languageNoms de langues naturellesRGPD, RGPD sensible, APPI sensible
marital_statusTermes indiquant la situation matrimonialeAPPI sensible
organizationNoms d’organisations ou de services au sein d’une organisationloi québécoise sur la protection de la vie privée, APPI
political_affiliationTermes faisant référence à un parti, mouvement ou idéologie politiqueCPRA, RGPD, RGPD sensible, loi québécoise sur la protection de la vie privée, APPI sensible
religionTermes indiquant une appartenance religieuseCPRA, RGPD, RGPD sensible, loi québécoise sur la protection de la vie privée, APPI sensible
routing_numberNuméro de routage associé à une banque ou institution financière
zodiac_signNoms de signes du zodiaque
product_or_serviceNoms de produits ou services commerciaux
food_or_beverageNoms d’aliments, de boissons et de plats
document_referenceRéférences à des documents, numéros de dossier ou identifiants de fichier
generic_idIdentifiants génériques ne relevant pas d’autres catégories d’identifiants
measurementMesures physiques et quantités avec unités
time_durationExpressions indiquant une durée ou un laps de temps
LibelléDescriptionConformité réglementaire
very_offensive_languageLangage très offensant, y compris les insultes
less_offensive_languageLangage légèrement offensant ou inapproprié

Masquage des entités

En plus de détecter les entités, vous pouvez les masquer dans le texte de la transcription avec le paramètre entity_redaction. Il accepte le même format que entity_detection : all, un mot-clé de catégorie ou une liste de types d’entités spécifiques. Les types masqués doivent constituer un sous-ensemble des types détectés.

Lorsque le masquage est activé, le texte des entités correspondantes est remplacé par un marqueur dans le texte de la transcription comme dans la sortie au niveau des mots, et le champ entities n’est pas renvoyé dans la réponse.

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

Le paramètre entity_redaction_mode contrôle le format du marqueur :

ModeMarqueurExemple
redacted{REDACTED} pour chaque entitéHi {REDACTED}
entity_typeLe type d’entité entre accoladesHi {NAME}
enumerated_entity_typeLe type d’entité avec un compteur d’occurrencesHi {NAME_0} (par défaut)

La détection et le masquage des entités ne sont pas pris en charge avec le style de sortie multicanal combined.

Étapes suivantes