Ir para a navegação

Detecção de entidades

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

Guia prático · Pressupõe que você tenha concluído 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 e fornecer 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 ser ocultados.

Quando ativado, o modelo detecta tipos específicos de entidades 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 PII detectadas na transcrição, com seus timestamps exatos.

Integração da detecção de entidades

A detecção de entidades é integrada à API 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 individuais de entidade 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 de 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 conta bancária e equivalentes internacionais, como IBANCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
cardinalExpressões numéricas em forma cardinal
credit_cardNúmeros de cartão de créditoCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
credit_card_expirationData de validade 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ário de plano de saúdeCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
ip_addressEndereço IP da internet, incluindo os 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 vilarejos, cidades pequenas e cidadesCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
location_coordinatePosições geográficas indicadas 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 atribuídos a uma pessoa, geralmente ao nascer; com frequência nome do meio ou primeiro nomeCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
name_familyNomes que indicam a família ou comunidade de uma pessoa; frequentemente sobrenomeCPRA, 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 em forma ordinal
originTermos que indicam nacionalidade, etnia ou procedênciaCPRA, 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 como porcentagens
phone_numberNúmeros de telefone ou faxCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
physical_attributeAtributos físicos distintivos, incluindo termos que indicam raçaCPRA, GDPR, GDPR Sensitive, APPI Sensitive
ssnNúmeros de seguridade social ou números de identificação governamental equivalentes 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 e 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 laboratoriaisCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI Sensitive
statisticsAlias legado para clinical_measurementHIPAA, Quebec Privacy Act
RótuloDescriçãoConformidade regulatória
credit_cardNúmeros de cartão de créditoCPRA, GDPR, HIPAA, Quebec Privacy Act, APPI
credit_card_expirationData de validade 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, movimento ou ideologia políticaCPRA, GDPR, GDPR Sensitive, Quebec Privacy Act, APPI Sensitive
religionTermos que indicam filiaçã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
measurementMedições físicas e quantidades com unidades
time_durationExpressões que indicam uma duração ou período
RótuloDescriçãoConformidade regulatória
very_offensive_languageLinguagem altamente ofensiva, incluindo insultos
less_offensive_languageLinguagem levemente ofensiva ou inadequada

Ocultaçã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 ocultação está ativada, o texto das entidades correspondentes é substituído por um marcador tanto no texto da transcrição quanto na saída em nível de 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 todas as entidadesHi {REDACTED}
entity_typeO tipo de entidade entre chavesHi {NAME}
enumerated_entity_typeO tipo de entidade mais um contador de ocorrênciasHi {NAME_0} (padrão)

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

A ocultação de entidades também funciona com o Scribe v2 Realtime: passe entity_redaction e entity_redaction_mode como parâmetros de consulta, no mesmo formato acima. Cada transcrição confirmada é seguida por um evento redacted_transcript que contém o text original e o redacted_text. Consulte a referência de eventos em tempo real.

Próximas etapas