Wykrywanie encji

Ten przewodnik pokazuje, jak używać wykrywania encji z API Speech to Text.

Przewodnik krok po kroku · Zakłada, że masz za sobą krótki przewodnik po Speech to Text .

Omówienie

Wykrywanie encji to funkcja, która pozwala wykrywać w transkrypcji konkretne słowa i wyrażenia oraz podaje ich dokładne znaczniki czasu. Przydaje się do wykrywania numerów kart kredytowych, imion i nazwisk, schorzeń czy numerów ubezpieczenia społecznego, które można potem zredagować.

Po włączeniu model wykrywa określone typy encji w transkrypcji i podaje ich dokładne znaczniki czasu.

Na przykład poniższe audio:

Zwraca poniższą transkrypcję, gdy określimy "pii" (dane umożliwiające identyfikację osoby) jako typ encji:

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

Wynik pokazuje encje PII wykryte w transkrypcji wraz z ich dokładnymi znacznikami czasu.

Integracja wykrywania encji

Wykrywanie encji jest zintegrowane z API Speech to Text przez przekazanie parametru entity_detection do metody 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)

Typy encji

Obsługujemy wykrywanie poniższych typów encji. Możesz wykrywać całe grupy za pomocą słów kluczowych kategorii pii, phi, pci, other lub offensive_language, albo wskazać pojedyncze typy encji według etykiety. Aby wykryć wszystkie typy encji, użyj kategorii all.

EtykietaOpisZgodność z przepisami
account_numberNumer identyfikacyjny konta klienta lub członkostwaCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
ageLiczby związane z wiekiem osobyGDPR, HIPAA, Quebec Privacy Act, APPI
bank_accountNumery rachunków bankowych i ich międzynarodowe odpowiedniki, np. IBANCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cardinalWyrażenia liczbowe w formie liczebników głównych
credit_cardNumery kart kredytowychCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
credit_card_expirationData ważności karty kredytowejCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cvv3- lub 4-cyfrowe kody weryfikacyjne karty i ich odpowiednikiCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
dateKonkretne daty kalendarzowe, w tym dni tygodnia, daty, miesiące i lataHIPAA, Quebec Privacy Act
date_intervalSzersze okresy, w tym zakresy dat, miesiące, pory roku, lata i dekadyHIPAA
dobDaty urodzeniaCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
driver_licenseNumery prawa jazdyCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
email_addressAdresy e-mailCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
eventNazwy wydarzeń lub świąt
filenameNazwy plików komputerowych, w tym rozszerzenie lub ścieżka pliku
genderOkreślenia tożsamości płciowej, także slangoweCPRA, GDPR, GDPR Sensitive, APPI Sensitive
gender_sexualityStarszy alias obejmujący gender i sexual_orientationCPRA, GDPR, GDPR Sensitive, APPI Sensitive
sexual_orientationOkreślenia orientacji seksualnej, także slangoweCPRA, GDPR, GDPR Sensitive, APPI Sensitive
healthcare_numberNumery ubezpieczenia zdrowotnego i numery beneficjentów planów zdrowotnychCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
ip_addressAdres IP w internecie, w tym formaty IPv4 i IPv6CPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
locationMetaklasa dla dowolnego nazwanego odniesienia do lokalizacjiGDPR, HIPAA, APPI
location_addressPełne lub częściowe fizyczne adresy korespondencyjneCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_cityNazwy gmin, w tym wsi, miasteczek i miastCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_coordinatePozycje geograficzne określone współrzędnymi szerokości, długości geograficznej lub wysokościCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_countryNazwy państwGDPR, APPI
location_stateNazwy stanów, prowincji, terytoriów lub prefekturGDPR, APPI
location_zipKody ZIP (w tym ZIP+4), kody pocztowe lub postal codesCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
moneyNazwy lub kwoty walut
nameImiona i nazwiska osób, bez tytułów osobistych, takich jak „pani” czy „pan”CPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_givenImiona nadane osobie, zwykle przy urodzeniu; często imiona pierwsze/drugie w kulturach ZachoduCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_familyNazwy wskazujące rodzinę lub społeczność osoby; często nazwisko w kulturach ZachoduCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_medical_professionalNazwy wraz z tytułem pracownika medycznego, np. „doktor”CPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
numerical_piiNumeryczne dane PII, które nie należą do innych kategoriiCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
occupationStanowiska lub zawodyQuebec Privacy Act, APPI
ordinalWyrażenia liczbowe w formie liczebników porządkowych
originOkreślenia narodowości, pochodzenia etnicznego lub proweniencjiCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
passport_numberNumery paszportów wydanych przez dowolne państwoCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
passwordHasła do kont, PIN-y, klucze dostępu lub odpowiedzi weryfikacyjneCPRA, APPI
percentWyrażenia liczbowe jako wartości procentowe
phone_numberNumery telefonu lub faksuCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
physical_attributeCharakterystyczne cechy fizyczne, w tym określenia rasyCPRA, GDPR, GDPR Sensitive, APPI Sensitive
ssnNumery Social Security lub równoważne numery identyfikacyjne wydawane przez państwoCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
timeWyrażenia wskazujące godziny
urlAdresy internetoweCPRA, GDPR, HIPAA, Quebec Privacy Act
usernameNazwy użytkownika, loginy lub pseudonimyCPRA, GDPR, APPI
vehicle_idNumery identyfikacyjne pojazdów (VIN), numery seryjne pojazdów i numery rejestracyjneCPRA, GDPR, HIPAA, APPI
EtykietaOpisZgodność z przepisami
conditionNazwy schorzeń, chorób, zespołów, deficytów i zaburzeńCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
drugLeki, witaminy i suplementyCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
injuryUrazy ciała, w tym mutacje, poronienia i zwichnięciaCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
blood_typeGrupy krwiCPRA, GDPR, HIPAA, Quebec Privacy Act
medical_processProcesy medyczne, w tym leczenie, procedury i badaniaCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
clinical_measurementPomiary kliniczne, parametry życiowe i wyniki badań laboratoryjnychCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
statisticsStarszy alias dla clinical_measurementHIPAA, Quebec Privacy Act
EtykietaOpisZgodność z przepisami
credit_cardNumery kart kredytowychCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
credit_card_expirationData ważności karty kredytowejCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cvv3- lub 4-cyfrowe kody weryfikacyjne karty i ich odpowiednikiCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
EtykietaOpisZgodność z przepisami
languageNazwy języków naturalnychGDPR, GDPR Sensitive, APPI Sensitive
marital_statusOkreślenia stanu cywilnegoAPPI Sensitive
organizationNazwy organizacji lub działów w organizacjiQuebec Privacy Act, APPI
political_affiliationOkreślenia partii politycznej, ruchu lub ideologiiCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
religionOkreślenia przynależności religijnejCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
routing_numberNumer rozliczeniowy powiązany z bankiem lub instytucją finansową
zodiac_signNazwy znaków zodiaku
product_or_serviceNazwy produktów lub usług komercyjnych
food_or_beverageNazwy żywności, napojów i dań
document_referenceOdniesienia do dokumentów, numery spraw lub identyfikatory plików
generic_idOgólne identyfikatory, które nie należą do innych kategorii ID
measurementPomiary fizyczne i ilości z jednostkami
time_durationWyrażenia wskazujące długość lub okres czasu
EtykietaOpisZgodność z przepisami
very_offensive_languageBardzo obraźliwy język, w tym obelgi
less_offensive_languageLekko obraźliwy lub nieodpowiedni język

Redagowanie encji

Oprócz wykrywania encji możesz usuwać je z tekstu transkrypcji za pomocą parametru entity_redaction. Przyjmuje on ten sam format co entity_detection: all, słowo kluczowe kategorii lub listę konkretnych typów encji. Typy do usunięcia muszą być podzbiorem wykrytych typów.

Gdy redagowanie jest włączone, dopasowany tekst encji zostaje zastąpiony znacznikiem zarówno w tekście transkrypcji, jak i w danych na poziomie słów, a pole entities nie jest zwracane w odpowiedzi.

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

Parametr entity_redaction_mode określa format znacznika:

TrybZnacznikPrzykład
redacted{REDACTED} dla każdej encjiHi {REDACTED}
entity_typeTyp encji w nawiasach klamrowychHi {NAME}
enumerated_entity_typeTyp encji i licznik wystąpieńHi {NAME_0} (domyślnie)

Wykrywanie i redagowanie encji nie jest obsługiwane przy stylu wyjścia wielokanałowego combined.

Następne kroki