Skip to navigation

Entiteitsdetectie

In deze handleiding lees je hoe je entiteitsdetectie gebruikt met de Speech to Text API.

Stapsgewijze handleiding · Hierbij gaan we ervan uit dat je de Speech to Text- snelstartgids hebt voltooid.

Overzicht

Entiteitsdetectie is een functie waarmee je specifieke woorden en zinnen in het transcript kunt detecteren, inclusief hun exacte tijdstempels. Dit is nuttig voor het detecteren van creditcardnummers, namen, medische aandoeningen of burgerservicenummers, die je vervolgens kunt redigeren.

Wanneer deze functie is ingeschakeld, detecteert het model specifieke entiteitstypen in het transcript en levert het de exacte tijdstempels.

Bijvoorbeeld: de volgende audio:

Geeft het volgende transcript als we "pii" (persoonlijk identificeerbare informatie) als entiteitstype opgeven:

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

Het resultaat toont de PII-entiteiten die in het transcript zijn gedetecteerd, met hun exacte tijdstempels.

Entiteitsdetectie integreren

Je integreert entiteitsdetectie in de Speech to Text API door de parameter entity_detection door te geven aan de methode 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)

Entiteitstypen

De volgende entiteitstypen worden ondersteund voor detectie. Je kunt volledige groepen detecteren met de categoriezoekwoorden pii, phi, pci, other of offensive_language, of afzonderlijke entiteitstypen opgeven via hun label. Gebruik de categorie all om alle entiteitstypen te detecteren.

LabelBeschrijvingNaleving van regelgeving
account_numberIdentificatienummer van klantaccount of lidmaatschapCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
ageGetallen die verband houden met de leeftijd van een persoonGDPR, HIPAA, Quebec Privacy Act, APPI
bank_accountBankrekeningnummers en internationale equivalenten, zoals IBANCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cardinalNumerieke uitdrukkingen in hoofdtelwoordvorm
credit_cardCreditcardnummersCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
credit_card_expirationVervaldatum van een creditcardCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cvv3- of 4-cijferige kaartverificatiecodes en equivalentenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
dateSpecifieke kalenderdata, waaronder dagen van de week, datums, maanden of jarenHIPAA, Quebec Privacy Act
date_intervalBredere tijdsperioden, waaronder datumbereiken, maanden, seizoenen, jaren en decenniaHIPAA
dobGeboortedataCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
driver_licenseRijbewijsnummersCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
email_addressE-mailadressenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
eventNamen van evenementen of feestdagen
filenameNamen van computerbestanden, inclusief extensie of bestandspad
genderTermen die genderidentiteit aanduiden, inclusief slangtermenCPRA, GDPR, GDPR Sensitive, APPI Sensitive
gender_sexualityVerouderde alias voor zowel gender als sexual_orientationCPRA, GDPR, GDPR Sensitive, APPI Sensitive
sexual_orientationTermen die seksuele oriëntatie aanduiden, inclusief slangtermenCPRA, GDPR, GDPR Sensitive, APPI Sensitive
healthcare_numberZorgnummers en begunstigdenummers van zorgplannenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
ip_addressInternet-IP-adressen, inclusief IPv4- en IPv6-indelingenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
locationMetaklasse voor elke benoemde locatieverwijzingGDPR, HIPAA, APPI
location_addressVolledige of gedeeltelijke fysieke postadressenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_cityNamen van gemeenten, waaronder dorpen, plaatsen en stedenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_coordinateGeografische posities aangeduid met breedtegraad-, lengtegraad- en/of hoogtecoördinatenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_countryLandnamenGDPR, APPI
location_stateNamen van staten, provincies, gebieden of prefecturenGDPR, APPI
location_zipZIP-codes (inclusief ZIP+4), postcodes of postale codesCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
moneyNamen en/of bedragen van valuta
nameNamen van personen, exclusief persoonlijke titels zoals ‘mevrouw’ of ‘meneer’CPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_givenNamen die aan een persoon worden gegeven, meestal bij de geboorte; vaak voor- en tweede namen in westerse culturenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_familyNamen die iemands familie of gemeenschap aanduiden; vaak een achternaam in westerse culturenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_medical_professionalNamen inclusief de titel van een medisch professional, zoals “dokter”CPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
numerical_piiNumerieke PII die niet onder andere categorieën valtCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
occupationFunctietitels of beroepenQuebec Privacy Act, APPI
ordinalNumerieke uitdrukkingen in rangtelwoordvorm
originTermen die nationaliteit, etniciteit of herkomst aanduidenCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
passport_numberPaspoortnummers, uitgegeven door elk landCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
passwordAccountwachtwoorden, pincode, toegangssleutels of verificatieantwoordenCPRA, APPI
percentNumerieke uitdrukkingen als percentages
phone_numberTelefoon- of faxnummersCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
physical_attributeKenmerkende lichamelijke eigenschappen, waaronder termen die ras aanduidenCPRA, GDPR, GDPR Sensitive, APPI Sensitive
ssnSocial Security Numbers of internationale equivalente identificatienummers van de overheidCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
timeUitdrukkingen die kloktijden aanduiden
urlInternetadressenCPRA, GDPR, HIPAA, Quebec Privacy Act
usernameGebruikersnamen, inlognamen of handlesCPRA, GDPR, APPI
vehicle_idVoertuigidentificatienummers (VIN’s), serienummers van voertuigen en kentekennummersCPRA, GDPR, HIPAA, APPI
LabelBeschrijvingNaleving van regelgeving
conditionNamen van medische aandoeningen, ziekten, syndromen, beperkingen en stoornissenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
drugMedicijnen, vitaminen en supplementenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
injuryLichamelijk letsel, waaronder mutaties, miskramen en ontwrichtingenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
blood_typeBloedgroepenCPRA, GDPR, HIPAA, Quebec Privacy Act
medical_processMedische processen, waaronder behandelingen, procedures en testsCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
clinical_measurementKlinische metingen, vitale waarden en laboratoriumresultatenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
statisticsVerouderde alias voor clinical_measurementHIPAA, Quebec Privacy Act
LabelBeschrijvingNaleving van regelgeving
credit_cardCreditcardnummersCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
credit_card_expirationVervaldatum van een creditcardCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cvv3- of 4-cijferige kaartverificatiecodes en equivalentenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
LabelBeschrijvingNaleving van regelgeving
languageNamen van natuurlijke talenGDPR, GDPR Sensitive, APPI Sensitive
marital_statusTermen die burgerlijke staat aanduidenAPPI Sensitive
organizationNamen van organisaties of afdelingen binnen een organisatieQuebec Privacy Act, APPI
political_affiliationTermen die verwijzen naar een politieke partij, beweging of ideologieCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
religionTermen die religieuze verbondenheid aanduidenCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
routing_numberRoutingnummer gekoppeld aan een bank of financiële instelling
zodiac_signNamen van sterrenbeelden
product_or_serviceNamen van commerciële producten of diensten
food_or_beverageNamen van voedsel, dranken en gerechten
document_referenceVerwijzingen naar documenten, zaaknummers of bestands-ID’s
generic_idAlgemene identificatoren die niet onder andere ID-categorieën vallen
measurementFysieke metingen en hoeveelheden met eenheden
time_durationUitdrukkingen die een tijdsduur of -spanne aanduiden
LabelBeschrijvingNaleving van regelgeving
very_offensive_languageZeer aanstootgevende taal, waaronder scheldwoorden
less_offensive_languageLicht aanstootgevende of ongepaste taal

Entiteiten redigeren

Naast het detecteren van entiteiten kun je ze met de parameter entity_redaction uit de transcripttekst redigeren. Deze accepteert dezelfde indeling als entity_detection: all, een categoriezoekwoord of een lijst met specifieke entiteitstypen. De geredigeerde typen moeten een subset zijn van de gedetecteerde typen.

Wanneer redigeren is ingeschakeld, wordt overeenkomende entiteitstekst vervangen door een markering in zowel de transcripttekst als de uitvoer op woordniveau, en wordt het veld entities niet geretourneerd in het antwoord.

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

De parameter entity_redaction_mode bepaalt de indeling van de markering:

ModusMarkeringVoorbeeld
redacted{REDACTED} voor elke entiteitHi {REDACTED}
entity_typeHet entiteitstype tussen accoladesHi {NAME}
enumerated_entity_typeHet entiteitstype plus een voorkomentellerHi {NAME_0} (standaard)

Entiteitsdetectie en -redactie worden niet ondersteund met de combined-uitvoerstijl voor meerdere kanalen.

Volgende stappen