Zur Navigation springen

Entitätserkennung

Dieser Leitfaden zeigt, wie Sie die Entitätserkennung mit der Speech to Text API verwenden.

Anleitung · Setzt voraus, dass Sie den Speech to Text- Schnellstart abgeschlossen haben.

Überblick

Die Entitätserkennung ermöglicht es Ihnen, bestimmte Wörter und Phrasen im Transkript zu erkennen und ihre genauen Zeitstempel bereitzustellen. Das ist nützlich, um Kreditkartennummern, Namen, medizinische Zustände oder Sozialversicherungsnummern zu erkennen, die anschließend geschwärzt werden können.

Wenn aktiviert, erkennt das Modell bestimmte Entitätstypen im Transkript und liefert ihre genauen Zeitstempel.

Zum Beispiel liefert das folgende Audio:

folgendes Transkript, wenn wir "pii" (personenbezogene Informationen) als Entitätstyp angeben:

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

Das Ergebnis zeigt die im Transkript erkannten PII-Entitäten mit ihren genauen Zeitstempeln.

Entitätserkennung integrieren

Die Entitätserkennung wird in die Speech to Text API integriert, indem Sie den Parameter entity_detection an die Methode convert übergeben.

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)

Entitätstypen

Die folgenden Entitätstypen werden für die Erkennung unterstützt. Sie können ganze Gruppen mit den Kategorie-Keywords pii, phi, pci, other oder offensive_language erkennen oder einzelne Entitätstypen anhand ihres Labels angeben. Um alle Entitätstypen zu erkennen, verwenden Sie die Kategorie all.

LabelBeschreibungEinhaltung von Vorschriften
account_numberKundenkonto- oder MitgliedsidentifikationsnummerCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
ageZahlen, die dem Alter einer Person zugeordnet sindGDPR, HIPAA, Quebec Privacy Act, APPI
bank_accountBankkontonummern und internationale Entsprechungen wie IBANCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cardinalNumerische Ausdrücke in Kardinalform
credit_cardKreditkartennummernCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
credit_card_expirationAblaufdatum einer KreditkarteCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cvvDrei- oder vierstellige Kartenprüfcodes und EntsprechungenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
dateBestimmte Kalenderdaten, einschließlich Wochentagen, Daten, Monaten oder JahrenHIPAA, Quebec Privacy Act
date_intervalGrößere Zeiträume, einschließlich Datumsbereichen, Monaten, Jahreszeiten, Jahren und JahrzehntenHIPAA
dobGeburtsdatenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
driver_licenseFührerscheinnummernCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
email_addressE-Mail-AdressenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
eventNamen von Veranstaltungen oder Feiertagen
filenameNamen von Computerdateien, einschließlich Erweiterung oder Dateipfad
genderBegriffe zur Geschlechtsidentität, einschließlich SlangCPRA, GDPR, GDPR Sensitive, APPI Sensitive
gender_sexualityVeralteter Alias für gender und sexual_orientationCPRA, GDPR, GDPR Sensitive, APPI Sensitive
sexual_orientationBegriffe zur sexuellen Orientierung, einschließlich SlangCPRA, GDPR, GDPR Sensitive, APPI Sensitive
healthcare_numberKrankenversicherungsnummern und Begünstigtennummern von GesundheitsplänenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
ip_addressInternet-IP-Adressen, einschließlich IPv4- und IPv6-FormatenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
locationMetaklasse für jede benannte OrtsreferenzGDPR, HIPAA, APPI
location_addressVollständige oder teilweise physische PostadressenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_cityNamen von Gemeinden, einschließlich Dörfern, Orten und StädtenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_coordinateGeografische Positionen, die mit Breiten-, Längen- und/oder Höhenkoordinaten angegeben werdenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_countryLändernamenGDPR, APPI
location_stateNamen von Bundesstaaten, Provinzen, Territorien oder PräfekturenGDPR, APPI
location_zipPostleitzahlen, einschließlich ZIP+4CPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
moneyWährungsnamen und/oder -beträge
nameNamen von Personen, ohne Anreden wie „Frau“ oder „Herr“CPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_givenEiner Person gegebene Namen, meist bei der Geburt; in westlichen Kulturen oft Vor- oder ZweitnamenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_familyNamen, die Familie oder Gemeinschaft einer Person kennzeichnen; in westlichen Kulturen oft NachnamenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_medical_professionalNamen mit der Berufsbezeichnung eines Mediziners, etwa „Doktor“CPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
numerical_piiNumerische PII, die nicht in andere Kategorien fälltCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
occupationBerufsbezeichnungen oder BerufeQuebec Privacy Act, APPI
ordinalNumerische Ausdrücke in Ordinalform
originBegriffe für Nationalität, Ethnie oder HerkunftCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
passport_numberReisepassnummern, die von einem beliebigen Land ausgestellt wurdenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
passwordKontopasswörter, PINs, Zugriffsschlüssel oder PrüfantwortenCPRA, APPI
percentNumerische Ausdrücke als Prozentsätze
phone_numberTelefon- oder FaxnummernCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
physical_attributeUnterscheidbare körperliche Merkmale, einschließlich Begriffen zur ethnischen ZugehörigkeitCPRA, GDPR, GDPR Sensitive, APPI Sensitive
ssnSozialversicherungsnummern oder internationale entsprechende staatliche IdentifikationsnummernCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
timeAusdrücke für Uhrzeiten
urlInternetadressenCPRA, GDPR, HIPAA, Quebec Privacy Act
usernameBenutzernamen, Anmeldenamen oder HandlesCPRA, GDPR, APPI
vehicle_idFahrzeugidentifikationsnummern (VINs), Fahrzeugseriennummern und KennzeichennummernCPRA, GDPR, HIPAA, APPI
LabelBeschreibungEinhaltung von Vorschriften
conditionNamen medizinischer Zustände, Krankheiten, Syndrome, Defizite, StörungenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
drugMedikamente, Vitamine und NahrungsergänzungsmittelCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
injuryKörperverletzungen, einschließlich Mutationen, Fehlgeburten und VerrenkungenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
blood_typeBlutgruppenCPRA, GDPR, HIPAA, Quebec Privacy Act
medical_processMedizinische Prozesse, einschließlich Behandlungen, Verfahren und TestsCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
clinical_measurementKlinische Messwerte, Vitalwerte und LaborergebnisseCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
statisticsVeralteter Alias für clinical_measurementHIPAA, Quebec Privacy Act
LabelBeschreibungEinhaltung von Vorschriften
credit_cardKreditkartennummernCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
credit_card_expirationAblaufdatum einer KreditkarteCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cvvDrei- oder vierstellige Kartenprüfcodes und EntsprechungenCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
LabelBeschreibungEinhaltung von Vorschriften
languageNamen natürlicher SprachenGDPR, GDPR Sensitive, APPI Sensitive
marital_statusBegriffe zum FamilienstandAPPI Sensitive
organizationNamen von Organisationen oder Abteilungen innerhalb einer OrganisationQuebec Privacy Act, APPI
political_affiliationBegriffe für eine politische Partei, Bewegung oder IdeologieCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
religionBegriffe für religiöse ZugehörigkeitCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
routing_numberBankleitzahl einer Bank oder eines Finanzinstituts
zodiac_signNamen von Sternzeichen
product_or_serviceNamen kommerzieller Produkte oder Dienstleistungen
food_or_beverageNamen von Lebensmitteln, Getränken und Speisen
document_referenceVerweise auf Dokumente, Aktenzeichen oder Dateikennungen
generic_idAllgemeine Kennungen, die nicht in andere ID-Kategorien fallen
measurementPhysische Messungen und Mengen mit Einheiten
time_durationAusdrücke für eine Zeitdauer oder Zeitspanne
LabelBeschreibungEinhaltung von Vorschriften
very_offensive_languageStark anstößige Sprache, einschließlich Schimpfwörtern
less_offensive_languageLeicht anstößige oder unangemessene Sprache

Entitäten schwärzen

Zusätzlich zur Erkennung von Entitäten können Sie diese mit dem Parameter entity_redaction aus dem Transkripttext schwärzen. Er akzeptiert dasselbe Format wie entity_detection: all, ein Kategorie-Keyword oder eine Liste spezifischer Entitätstypen. Die geschwärzten Typen müssen eine Teilmenge der erkannten Typen sein.

Wenn die Schwärzung aktiviert ist, wird übereinstimmender Entitätstext sowohl im Transkripttext als auch in der Ausgabe auf Wortebene durch eine Markierung ersetzt. Das Feld entities wird in der Antwort nicht zurückgegeben.

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

Der Parameter entity_redaction_mode steuert das Format der Markierung:

ModusMarkierungBeispiel
redacted{REDACTED} für jede EntitätHi {REDACTED}
entity_typeDer Entitätstyp in geschweiften KlammernHi {NAME}
enumerated_entity_typeDer Entitätstyp plus VorkommenszählerHi {NAME_0} (Standard)

Entitätserkennung und -schwärzung werden mit dem mehrkanaligen Ausgabestil combined nicht unterstützt.

Die Entitätsschwärzung funktioniert auch mit Scribe v2 Realtime: Übergeben Sie entity_redaction und entity_redaction_mode als Abfrageparameter im selben Format wie oben. Auf jedes bestätigte Transkript folgt dann ein redacted_transcript-Ereignis mit dem ursprünglichen text und dem redacted_text. Siehe die Referenz für Echtzeitereignisse.

Nächste Schritte