Vai alla navigazione

Rilevamento delle entità

Questa guida mostra come usare il rilevamento delle entità con l’API Speech to Text.

Guida pratica · Presuppone che tu abbia completato la guida rapida di Speech to Text .

Panoramica

Il rilevamento delle entità è una funzionalità che consente di rilevare parole e frasi specifiche nella trascrizione, fornendone i timestamp esatti. È utile per rilevare numeri di carte di credito, nomi, condizioni mediche o numeri di previdenza sociale, che possono poi essere oscurati.

Quando è abilitata, il modello rileva tipi di entità specifici nella trascrizione e ne fornisce i timestamp esatti.

Ad esempio, il seguente audio:

Genera la seguente trascrizione quando specifichiamo "pii" (informazioni personali identificabili) come tipo di 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
}
]
}

Il risultato mostra le entità PII rilevate nella trascrizione, con i relativi timestamp esatti.

Integrare il rilevamento delle entità

Il rilevamento delle entità viene integrato nell’API Speech to Text passando il parametro entity_detection al metodo 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)

Tipi di entità

Sono supportati i seguenti tipi di entità per il rilevamento. Puoi rilevare interi gruppi usando le parole chiave di categoria pii, phi, pci, other o offensive_language, oppure specificare singoli tipi di entità tramite la relativa etichetta. Per rilevare tutti i tipi di entità, usa la categoria all.

EtichettaDescrizioneConformità normativa
account_numberNumero di identificazione dell’account cliente o dell’iscrizioneCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
ageNumeri associati all’età di una personaGDPR, HIPAA, Quebec Privacy Act, APPI
bank_accountNumeri di conto bancario e relativi equivalenti internazionali, come l’IBANCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cardinalEspressioni numeriche in forma cardinale
credit_cardNumeri di carta di creditoCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
credit_card_expirationData di scadenza di una carta di creditoCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cvvCodici di verifica della carta di 3 o 4 cifre ed equivalentiCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
dateDate di calendario specifiche, che possono includere giorni della settimana, date, mesi o anniHIPAA, Quebec Privacy Act
date_intervalPeriodi più ampi, inclusi intervalli di date, mesi, stagioni, anni e decenniHIPAA
dobDate di nascitaCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
driver_licenseNumeri di patente di guidaCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
email_addressIndirizzi emailCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
eventNomi di eventi o festività
filenameNomi di file del computer, inclusa l’estensione o il filepath
genderTermini che indicano l’identità di genere, inclusi termini gergaliCPRA, GDPR, GDPR Sensitive, APPI Sensitive
gender_sexualityAlias legacy che comprende sia gender sia sexual_orientationCPRA, GDPR, GDPR Sensitive, APPI Sensitive
sexual_orientationTermini che indicano l’orientamento sessuale, inclusi termini gergaliCPRA, GDPR, GDPR Sensitive, APPI Sensitive
healthcare_numberNumeri sanitari e numeri dei beneficiari di piani sanitariCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
ip_addressIndirizzo IP Internet, inclusi i formati IPv4 e IPv6CPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
locationMetaclasse per qualsiasi riferimento a una località denominataGDPR, HIPAA, APPI
location_addressIndirizzi postali fisici completi o parzialiCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_cityNomi di comuni, inclusi villaggi, paesi e cittàCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_coordinatePosizioni geografiche indicate tramite coordinate di latitudine, longitudine e/o altitudineCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_countryNomi di paesiGDPR, APPI
location_stateNomi di stati, province, territori o prefettureGDPR, APPI
location_zipCodici ZIP (incluso ZIP+4), codici postali o codici di avviamento postaleCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
moneyNomi e/o importi di valute
nameNomi di persone, esclusi i titoli personali come “Signora” o “Signor”CPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_givenNomi dati a una persona, di solito alla nascita; spesso nome e secondo nome nelle culture occidentaliCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_familyNomi che indicano la famiglia o la comunità di una persona; spesso il cognome nelle culture occidentaliCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_medical_professionalNomi che includono il titolo di un professionista sanitario, come “Dottore”CPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
numerical_piiPII numerici che non rientrano in altre categorieCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
occupationTitoli professionali o professioniQuebec Privacy Act, APPI
ordinalEspressioni numeriche in forma ordinale
originTermini che indicano nazionalità, etnia o provenienzaCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
passport_numberNumeri di passaporto, rilasciati da qualsiasi paeseCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
passwordPassword degli account, PIN, chiavi di accesso o risposte di verificaCPRA, APPI
percentEspressioni numeriche come percentuali
phone_numberNumeri di telefono o faxCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
physical_attributeAttributi fisici distintivi, inclusi termini che indicano la razzaCPRA, GDPR, GDPR Sensitive, APPI Sensitive
ssnNumeri di previdenza sociale o numeri di identificazione governativa equivalenti internazionaliCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
timeEspressioni che indicano l’orario
urlIndirizzi InternetCPRA, GDPR, HIPAA, Quebec Privacy Act
usernameNomi utente, nomi di login o handleCPRA, GDPR, APPI
vehicle_idNumeri di identificazione dei veicoli (VIN), numeri di serie dei veicoli e numeri di targaCPRA, GDPR, HIPAA, APPI
EtichettaDescrizioneConformità normativa
conditionNomi di condizioni mediche, malattie, sindromi, deficit e disturbiCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
drugMedicinali, vitamine e integratoriCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
injuryLesioni fisiche, incluse mutazioni, aborti spontanei e lussazioniCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
blood_typeGruppi sanguigniCPRA, GDPR, HIPAA, Quebec Privacy Act
medical_processProcessi medici, inclusi trattamenti, procedure ed esamiCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
clinical_measurementMisurazioni cliniche, parametri vitali e risultati di laboratorioCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
statisticsAlias legacy per clinical_measurementHIPAA, Quebec Privacy Act
EtichettaDescrizioneConformità normativa
credit_cardNumeri di carta di creditoCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
credit_card_expirationData di scadenza di una carta di creditoCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cvvCodici di verifica della carta di 3 o 4 cifre ed equivalentiCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
EtichettaDescrizioneConformità normativa
languageNomi di lingue naturaliGDPR, GDPR Sensitive, APPI Sensitive
marital_statusTermini che indicano lo stato civileAPPI Sensitive
organizationNomi di organizzazioni o reparti all’interno di un’organizzazioneQuebec Privacy Act, APPI
political_affiliationTermini riferiti a un partito politico, movimento o ideologiaCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
religionTermini che indicano l’affiliazione religiosaCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
routing_numberCodice di instradamento associato a una banca o istituzione finanziaria
zodiac_signNomi dei segni zodiacali
product_or_serviceNomi di prodotti o servizi commerciali
food_or_beverageNomi di alimenti, bevande e piatti
document_referenceRiferimenti a documenti, numeri di caso o identificatori di file
generic_idIdentificatori generici che non rientrano in altre categorie di ID
measurementMisurazioni fisiche e quantità con unità di misura
time_durationEspressioni che indicano una durata o un intervallo di tempo
EtichettaDescrizioneConformità normativa
very_offensive_languageLinguaggio fortemente offensivo, inclusi insulti
less_offensive_languageLinguaggio lievemente offensivo o inappropriato

Oscuramento delle entità

Oltre a rilevare le entità, puoi oscurarle nel testo della trascrizione con il parametro entity_redaction. Accetta lo stesso formato di entity_detection: all, una parola chiave di categoria o un elenco di tipi di entità specifici. I tipi da oscurare devono essere un sottoinsieme di quelli rilevati.

Quando l’oscuramento è abilitato, il testo dell’entità corrispondente viene sostituito con un marcatore sia nel testo della trascrizione sia nell’output a livello di parola, e il campo entities non viene restituito nella risposta.

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

Il parametro entity_redaction_mode controlla il formato del marcatore:

ModalitàMarcatoreEsempio
redacted{REDACTED} per ogni entitàCiao {REDACTED}
entity_typeIl tipo di entità tra parentesi graffeCiao {NAME}
enumerated_entity_typeIl tipo di entità più un contatore di occorrenzeCiao {NAME_0} (predefinito)

Il rilevamento e l’oscuramento delle entità non sono supportati con lo stile di output multicanale combined.

Passaggi successivi