Detecção de entidades

Este guia mostra como usar a detecção de entidades com a API de Speech to Text.

Guia prático · Pressupõe que você concluiu o guia de início rápido do Speech to Text .

Visão geral

A detecção de entidades é um recurso que permite detectar palavras e frases específicas na transcrição, fornecendo seus timestamps exatos. Isso é útil para detectar números de cartão de crédito, nomes, condições médicas ou números de seguridade social, que podem então ser ocultados.

Quando ativado, o modelo detecta tipos específicos de entidade na transcrição e fornece seus timestamps exatos.

Por exemplo, o áudio a seguir:

Gera a seguinte transcrição quando especificamos "pii" (informações de identificação pessoal) como o tipo de entidade:

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

O resultado mostra as entidades de informações de identificação pessoal detectadas na transcrição, com seus timestamps exatos.

Como integrar a detecção de entidades

A detecção de entidades é integrada à API de Speech to Text ao passar o parâmetro entity_detection para o método 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)

Tipos de entidade

Os seguintes tipos de entidade são compatíveis com a detecção. Você pode detectar grupos inteiros usando as palavras-chave de categoria pii, phi, pci, other ou offensive_language, ou especificar tipos de entidade individuais pelo rótulo. Para detectar todos os tipos de entidade, use a categoria all.

RótuloDescriçãoConformidade regulatória
account_numberNúmero de identificação da conta ou associação do clienteCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
ageNúmeros associados à idade de uma pessoaGDPR, HIPAA, Quebec Privacy Act, APPI
bank_accountNúmeros de contas bancárias e equivalentes internacionais, como IBANCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cardinalExpressões numéricas na forma cardinal
credit_cardNúmeros de cartões de créditoCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
credit_card_expirationData de vencimento de um cartão de créditoCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cvvCódigos de verificação de cartão de 3 ou 4 dígitos e equivalentesCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
dateDatas específicas do calendário, que podem incluir dias da semana, datas, meses ou anosHIPAA, Quebec Privacy Act
date_intervalPeríodos mais amplos, incluindo intervalos de datas, meses, estações, anos e décadasHIPAA
dobDatas de nascimentoCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
driver_licenseNúmeros de carteira de motoristaCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
email_addressEndereços de e-mailCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
eventNomes de eventos ou feriados
filenameNomes de arquivos de computador, incluindo a extensão ou o caminho do arquivo
genderTermos que indicam identidade de gênero, incluindo gíriasCPRA, GDPR, GDPR Sensitive, APPI Sensitive
gender_sexualityAlias legado que abrange gender e sexual_orientationCPRA, GDPR, GDPR Sensitive, APPI Sensitive
sexual_orientationTermos que indicam orientação sexual, incluindo gíriasCPRA, GDPR, GDPR Sensitive, APPI Sensitive
healthcare_numberNúmeros de saúde e números de beneficiários de planos de saúdeCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
ip_addressEndereço IP da internet, incluindo formatos IPv4 e IPv6CPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
locationMetaclasse para qualquer referência de local nomeadoGDPR, HIPAA, APPI
location_addressEndereços físicos de correspondência completos ou parciaisCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_cityNomes de municípios, incluindo vilas, cidades pequenas e cidadesCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_coordinatePosições geográficas referidas por coordenadas de latitude, longitude e/ou elevaçãoCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_countryNomes de paísesGDPR, APPI
location_stateNomes de estados, províncias, territórios ou prefeiturasGDPR, APPI
location_zipCEPs (incluindo ZIP+4), códigos postais ou códigos de endereçamentoCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
moneyNomes e/ou valores de moedas
nameNomes de pessoas, sem incluir títulos pessoais como ‘Sra.’ ou ‘Sr.‘CPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_givenNomes dados a uma pessoa, geralmente ao nascer; frequentemente nomes e nomes do meio em culturas ocidentaisCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_familyNomes que indicam a família ou comunidade de uma pessoa; frequentemente sobrenomes em culturas ocidentaisCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_medical_professionalNomes que incluem o título de um profissional de saúde, como “Doutor”CPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
numerical_piiPII numérica que não se enquadra em outras categoriasCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
occupationCargos ou profissõesQuebec Privacy Act, APPI
ordinalExpressões numéricas na forma ordinal
originTermos que indicam nacionalidade, etnia ou origemCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
passport_numberNúmeros de passaporte emitidos por qualquer paísCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
passwordSenhas de conta, PINs, chaves de acesso ou respostas de verificaçãoCPRA, APPI
percentExpressões numéricas em porcentagens
phone_numberNúmeros de telefone ou faxCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
physical_attributeAtributos corporais distintivos, incluindo termos que indicam raçaCPRA, GDPR, GDPR Sensitive, APPI Sensitive
ssnNúmeros da Previdência Social ou números equivalentes de identificação governamental internacionaisCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
timeExpressões que indicam horários
urlEndereços da internetCPRA, GDPR, HIPAA, Quebec Privacy Act
usernameNomes de usuário, nomes de login ou identificadoresCPRA, GDPR, APPI
vehicle_idNúmeros de identificação de veículos (VINs), números de série de veículos e números de placasCPRA, GDPR, HIPAA, APPI
RótuloDescriçãoConformidade regulatória
conditionNomes de condições médicas, doenças, síndromes, deficiências e transtornosCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
drugMedicamentos, vitaminas e suplementosCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
injuryLesões corporais, incluindo mutações, abortos espontâneos e luxaçõesCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
blood_typeTipos sanguíneosCPRA, GDPR, HIPAA, Quebec Privacy Act
medical_processProcessos médicos, incluindo tratamentos, procedimentos e examesCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
clinical_measurementMedições clínicas, sinais vitais e resultados de laboratórioCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
statisticsAlias legado de clinical_measurementHIPAA, Quebec Privacy Act
RótuloDescriçãoConformidade regulatória
credit_cardNúmeros de cartões de créditoCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
credit_card_expirationData de vencimento de um cartão de créditoCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cvvCódigos de verificação de cartão de 3 ou 4 dígitos e equivalentesCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
RótuloDescriçãoConformidade regulatória
languageNomes de idiomas naturaisGDPR, GDPR Sensitive, APPI Sensitive
marital_statusTermos que indicam estado civilAPPI Sensitive
organizationNomes de organizações ou departamentos dentro de uma organizaçãoQuebec Privacy Act, APPI
political_affiliationTermos referentes a um partido político, movimento ou ideologiaCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
religionTermos que indicam afiliação religiosaCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
routing_numberNúmero de roteamento associado a um banco ou instituição financeira
zodiac_signNomes de signos do zodíaco
product_or_serviceNomes de produtos ou serviços comerciais
food_or_beverageNomes de alimentos, bebidas e pratos
document_referenceReferências a documentos, números de caso ou identificadores de arquivo
generic_idIdentificadores genéricos que não se enquadram em outras categorias de ID
measurementMedidas físicas e quantidades com unidades
time_durationExpressões que indicam uma duração ou intervalo de tempo
RótuloDescriçãoConformidade regulatória
very_offensive_languageLinguagem altamente ofensiva, incluindo insultos
less_offensive_languageLinguagem levemente ofensiva ou inadequada

Redação de entidades

Além de detectar entidades, você pode ocultá-las do texto da transcrição com o parâmetro entity_redaction. Ele aceita o mesmo formato que entity_detection: all, uma palavra-chave de categoria ou uma lista de tipos específicos de entidade. Os tipos ocultados devem ser um subconjunto dos tipos detectados.

Quando a redação está ativada, o texto da entidade correspondente é substituído por um marcador tanto no texto da transcrição quanto na saída por palavra, e o campo entities não é retornado na resposta.

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

O parâmetro entity_redaction_mode controla o formato do marcador:

ModoMarcadorExemplo
redacted{REDACTED} para cada entidadeOlá {REDACTED}
entity_typeO tipo de entidade entre chavesOlá {NAME}
enumerated_entity_typeO tipo de entidade mais um contador de ocorrênciasOlá {NAME_0} (padrão)

A detecção e a redação de entidades não são compatíveis com o estilo de saída multicanal combined.

Próximas etapas