Skip to navigation

Entiteitsdetectie

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

Stapsgewijze handleiding · Hierbij wordt ervan uitgegaan dat je de Speech to Text- snelstart hebt voltooid.

Overzicht

Entiteitsdetectie is een functie waarmee je specifieke woorden en zinnen in het transcript kunt detecteren en hun exacte tijdstempels krijgt. Dit is handig voor het detecteren van creditcardnummers, namen, medische aandoeningen of burgerservicenummers, die vervolgens kunnen worden geredigeerd.

Als deze functie is ingeschakeld, detecteert het model specifieke entiteitstypen in het transcript en geeft het hun exacte tijdstempels.

Bijvoorbeeld de volgende audio:

Geeft het volgende transcript wanneer 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

Entiteitsdetectie wordt geïntegreerd 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 hele groepen detecteren met de categoriezoekwoorden pii, phi, pci, other of offensive_language, of individuele entiteitstypen opgeven met hun label. Gebruik de categorie all om alle entiteitstypen te detecteren.

LabelBeschrijvingNaleving van regelgeving
account_numberIdentificatienummer van een 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
cvvKaartverificatiecodes van 3 of 4 cijfers en equivalentenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
dateSpecifieke kalenderdatums, waaronder dagen van de week, datums, maanden of jarenHIPAA, Quebec Privacy Act
date_intervalRuimere tijdsperioden, waaronder datumbereiken, maanden, seizoenen, jaren en decenniaHIPAA
dobGeboortedatumsCPRA, 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 aangeven, inclusief straattaalCPRA, GDPR, GDPR Sensitive, APPI Sensitive
gender_sexualityVerouderde alias die zowel gender als sexual_orientation omvatCPRA, GDPR, GDPR Sensitive, APPI Sensitive
sexual_orientationTermen die seksuele geaardheid aangeven, inclusief straattaalCPRA, GDPR, GDPR Sensitive, APPI Sensitive
healthcare_numberZorgnummers en nummers van begunstigden van zorgverzekeringenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
ip_addressInternet-IP-adressen, inclusief IPv4- en IPv6-indelingenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
locationMetaklasse voor elke verwijzing naar een benoemde locatieGDPR, HIPAA, APPI
location_addressVolledige of gedeeltelijke fysieke postadressenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_cityNamen van gemeenten, inclusief dorpen, plaatsen en stedenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_coordinateGeografische posities aangeduid met breedte-, lengte- en/of hoogtecoördinatenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_countryLandnamenGDPR, APPI
location_stateNamen van staten, provincies, territoria of prefecturenGDPR, APPI
location_zipPostcodes, inclusief ZIP+4CPRA, 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 geboorte; vaak voor- of 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 met 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 aangevenCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
passport_numberPaspoortnummers, uitgegeven door elk landCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
passwordAccountwachtwoorden, pincodes, toegangssleutels of verificatieantwoordenCPRA, APPI
percentNumerieke uitdrukkingen als percentages
phone_numberTelefoon- of faxnummersCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
physical_attributeKenmerkende lichamelijke eigenschappen, inclusief 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 aangeven
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, gebreken, stoornissenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
drugMedicijnen, vitaminen en supplementenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
injuryLichamelijk letsel, inclusief 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
cvvKaartverificatiecodes van 3 of 4 cijfers en equivalentenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
LabelBeschrijvingNaleving van regelgeving
languageNamen van natuurlijke talenGDPR, GDPR Sensitive, APPI Sensitive
marital_statusTermen die burgerlijke staat aangevenAPPI 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 overtuiging aangevenCPRA, 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 aangeven
LabelBeschrijvingNaleving van regelgeving
very_offensive_languageSterk aanstootgevende taal, inclusief 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 redigeren worden niet ondersteund met de multichannel-uitvoerstijl combined.

Entiteiten redigeren werkt ook met Scribe v2 Realtime: geef entity_redaction en entity_redaction_mode door als queryparameters, in dezelfde indeling als hierboven. Elk bevestigd transcript wordt dan gevolgd door een gebeurtenis redacted_transcript met de oorspronkelijke text en de redacted_text. Zie de referentie voor realtime-gebeurtenissen .

Volgende stappen