エンティティ検出

このガイドでは、スピーチtoテキストAPIでエンティティ検出を使用する方法を説明します。

ハウツーガイド · スピーチtoテキストの クイックスタートを完了していることを前提としています。

概要

エンティティ検出は、文字起こし内の特定の単語やフレーズを検出し、その正確なタイムスタンプを提供する機能です。クレジットカード番号、氏名、病状、社会保障番号(SSN)などを検出し、後でマスキングする場合に便利です。

有効にすると、モデルは文字起こし内の特定のエンティティタイプを検出し、その正確なタイムスタンプを提供します。

たとえば、次のオーディオの場合です。

エンティティタイプとして"pii"(個人識別情報)を指定すると、次の文字起こしが出力されます。

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

結果には、文字起こしで検出されたPIIエンティティと、その正確なタイムスタンプが表示されます。

エンティティ検出を統合する

エンティティ検出は、convertメソッドにentity_detectionパラメータを渡すことでスピーチtoテキストAPIに統合できます。

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)

エンティティタイプ

以下のエンティティタイプを検出できます。カテゴリキーワードのpii、phi、pci、other、offensive_languageを使うとグループ全体を検出でき、ラベルを指定すると個別のエンティティタイプを検出できます。すべてのエンティティタイプを検出するには、allカテゴリを使用します。

LabelDescriptionRegulatory Compliance
account_number顧客アカウントまたは会員識別番号CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
age個人の年齢に関連する数値GDPR、HIPAA、ケベック州個人情報保護法、APPI
bank_account銀行口座番号およびIBANなどの国際的な同等番号CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
cardinal基数形式の数値表現
credit_cardクレジットカード番号CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
credit_card_expirationクレジットカードの有効期限CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
cvv3桁または4桁のカード認証コードおよび同等のコードCPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
date曜日、日付、月、年を含む特定の暦日HIPAA、ケベック州個人情報保護法
date_interval日付範囲、月、季節、年、年代を含む、より広い期間HIPAA
dob生年月日CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
driver_license運転免許証番号CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
email_addressメールアドレスCPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
eventイベントまたは祝日の名称
filename拡張子またはファイルパスを含むコンピューターファイル名
genderスラングを含む、ジェンダーアイデンティティを示す用語CPRA、GDPR、GDPR Sensitive、APPI Sensitive
gender_sexualitygenderとsexual_orientationの両方を対象とする旧エイリアスCPRA、GDPR、GDPR Sensitive、APPI Sensitive
sexual_orientationスラングを含む、性的指向を示す用語CPRA、GDPR、GDPR Sensitive、APPI Sensitive
healthcare_number医療番号および健康保険プランの受益者番号CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
ip_addressIPv4およびIPv6形式を含むインターネットIPアドレスCPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
location名前付きの場所参照全般のメタクラスGDPR、HIPAA、APPI
location_address完全または一部の実在する郵送先住所CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
location_city村、町、市を含む自治体名CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
location_coordinate緯度、経度、または標高座標で示される地理的位置CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
location_country国名GDPR、APPI
location_state州、省、準州、都道府県の名称GDPR、APPI
location_zipZIPコード(ZIP+4を含む)、郵便番号CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
money通貨の名称および/または金額
name「Mrs.」や「Mr.」などの敬称を除く個人名CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
name_given個人に通常出生時に付けられる名前。西洋文化では多くの場合、名/ミドルネームCPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
name_family個人の家族またはコミュニティを示す名前。西洋文化では多くの場合、姓CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
name_medical_professional「Doctor」など、医療専門職の肩書きを含む名前CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
numerical_pii他のカテゴリに該当しない数値形式のPIICPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
occupation役職または職業ケベック州個人情報保護法、APPI
ordinal序数形式の数値表現
origin国籍、民族、出自を示す用語CPRA、GDPR、GDPR Sensitive、ケベック州個人情報保護法、APPI Sensitive
passport_numberすべての国が発行するパスポート番号CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
passwordアカウントパスワード、PIN、アクセスキー、認証用回答CPRA、APPI
percentパーセンテージとしての数値表現
phone_number電話番号またはFAX番号CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
physical_attribute人種を示す用語を含む、特徴的な身体的属性CPRA、GDPR、GDPR Sensitive、APPI Sensitive
ssn社会保障番号、または国際的に同等の政府発行識別番号CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
time時刻を示す表現
urlインターネットアドレスCPRA、GDPR、HIPAA、ケベック州個人情報保護法
usernameユーザー名、ログイン名、ハンドル名CPRA、GDPR、APPI
vehicle_id車両識別番号(VIN)、車両シリアル番号、ナンバープレート番号CPRA、GDPR、HIPAA、APPI
LabelDescriptionRegulatory Compliance
condition病状、疾患、症候群、障害、疾患群の名称CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI Sensitive
drug医薬品、ビタミン、サプリメントCPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI Sensitive
injury変異、流産、脱臼を含む身体的損傷CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI Sensitive
blood_type血液型CPRA、GDPR、HIPAA、ケベック州個人情報保護法
medical_process治療、処置、検査を含む医療プロセスCPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI Sensitive
clinical_measurement臨床測定値、バイタルサイン、検査結果CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI Sensitive
statisticsclinical_measurementの旧エイリアスHIPAA、ケベック州個人情報保護法
LabelDescriptionRegulatory Compliance
credit_cardクレジットカード番号CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
credit_card_expirationクレジットカードの有効期限CPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
cvv3桁または4桁のカード認証コードおよび同等のコードCPRA、GDPR、HIPAA、ケベック州個人情報保護法、APPI
LabelDescriptionRegulatory Compliance
language自然言語の名称GDPR、GDPR Sensitive、APPI Sensitive
marital_status婚姻状況を示す用語APPI Sensitive
organization組織または組織内の部署の名称ケベック州個人情報保護法、APPI
political_affiliation政党、運動、イデオロギーに言及する用語CPRA、GDPR、GDPR Sensitive、ケベック州個人情報保護法、APPI Sensitive
religion宗教的所属を示す用語CPRA、GDPR、GDPR Sensitive、ケベック州個人情報保護法、APPI Sensitive
routing_number銀行または金融機関に関連付けられたルーティング番号
zodiac_sign星座の名称
product_or_service商用製品またはサービスの名称
food_or_beverage食品、飲料、料理の名称
document_reference文書、事件番号、ファイル識別子への参照
generic_id他のIDカテゴリに該当しない汎用識別子
measurement単位を伴う物理的な測定値および数量
time_duration時間の長さまたは期間を示す表現
LabelDescriptionRegulatory Compliance
very_offensive_language差別語を含む、強く不快な表現
less_offensive_language軽度に不快または不適切な表現

エンティティのマスキング

エンティティを検出するだけでなく、entity_redactionパラメータを使用して文字起こしテキストからマスキングできます。このパラメータには、entity_detectionと同じ形式(all、カテゴリキーワード、または特定のエンティティタイプのリスト)を指定できます。マスキングするタイプは、検出するタイプのサブセットである必要があります。

マスキングを有効にすると、一致したエンティティテキストは文字起こしテキストと単語レベルの出力の両方でマーカーに置き換えられ、レスポンスではentitiesフィールドが返されません。

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

entity_redaction_modeパラメータは、マーカーの形式を制御します。

ModeMarkerExample
redactedすべてのエンティティに{REDACTED}Hi {REDACTED}
entity_type中括弧で囲んだエンティティタイプHi {NAME}
enumerated_entity_typeエンティティタイプに出現回数を追加Hi {NAME_0}(デフォルト)

エンティティの検出とマスキングは、combinedマルチチャンネル出力スタイルではサポートされていません。

次のステップ