ナビゲーションにスキップ

エンティティ検出

このガイドでは、スピーチ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 カテゴリを使用します。

ラベル説明規制への準拠
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センシティブ、APPIセンシティブ
gender_sexualitygender と sexual_orientation の両方を対象とする旧エイリアスCPRA、GDPR、GDPRセンシティブ、APPIセンシティブ
sexual_orientation俗語を含む、性的指向を示す用語CPRA、GDPR、GDPRセンシティブ、APPIセンシティブ
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+4を含むZIPコード、郵便番号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センシティブ、ケベック州プライバシー法、APPIセンシティブ
passport_numberあらゆる国が発行したパスポート番号CPRA、GDPR、HIPAA、ケベック州プライバシー法、APPI
passwordアカウントのパスワード、PIN、アクセスキー、認証用の回答CPRA、APPI
percentパーセント形式の数値表現
phone_number電話番号またはFAX番号CPRA、GDPR、HIPAA、ケベック州プライバシー法、APPI
physical_attribute人種を示す用語を含む、身体上の特徴CPRA、GDPR、GDPRセンシティブ、APPIセンシティブ
ssn社会保障番号または各国の同等の政府発行識別番号CPRA、GDPR、HIPAA、ケベック州プライバシー法、APPI
time時刻を示す表現
urlインターネットアドレスCPRA、GDPR、HIPAA、ケベック州プライバシー法
usernameユーザー名、ログイン名、ハンドル名CPRA、GDPR、APPI
vehicle_id車両識別番号(VIN)、車両のシリアル番号、ナンバープレート番号CPRA、GDPR、HIPAA、APPI
ラベル説明規制への準拠
condition病状、疾患、症候群、機能不全、障害の名称CPRA、GDPR、HIPAA、ケベック州プライバシー法、APPIセンシティブ
drug医薬品、ビタミン、サプリメントCPRA、GDPR、HIPAA、ケベック州プライバシー法、APPIセンシティブ
injury変異、流産、脱臼を含む身体的損傷CPRA、GDPR、HIPAA、ケベック州プライバシー法、APPIセンシティブ
blood_type血液型CPRA、GDPR、HIPAA、ケベック州プライバシー法
medical_process治療、処置、検査などの医療プロセスCPRA、GDPR、HIPAA、ケベック州プライバシー法、APPIセンシティブ
clinical_measurement臨床測定値、バイタルサイン、検査結果CPRA、GDPR、HIPAA、ケベック州プライバシー法、APPIセンシティブ
statisticsclinical_measurement の旧エイリアスHIPAA、ケベック州プライバシー法
ラベル説明規制への準拠
credit_cardクレジットカード番号CPRA、GDPR、HIPAA、ケベック州プライバシー法、APPI
credit_card_expirationクレジットカードの有効期限CPRA、GDPR、HIPAA、ケベック州プライバシー法、APPI
cvv3桁または4桁のカード確認コードおよび同等のコードCPRA、GDPR、HIPAA、ケベック州プライバシー法、APPI
ラベル説明規制への準拠
language自然言語の名称GDPR、GDPRセンシティブ、APPIセンシティブ
marital_status婚姻状況を示す用語APPIセンシティブ
organization組織または組織内の部門名ケベック州プライバシー法、APPI
political_affiliation政党、運動、イデオロギーを指す用語CPRA、GDPR、GDPRセンシティブ、ケベック州プライバシー法、APPIセンシティブ
religion宗教的所属を示す用語CPRA、GDPR、GDPRセンシティブ、ケベック州プライバシー法、APPIセンシティブ
routing_number銀行または金融機関に関連するルーティング番号
zodiac_sign星座名
product_or_service商用プロダクトまたはサービスの名称
food_or_beverage食品、飲料、料理の名称
document_reference文書、事件番号、ファイル識別子への参照
generic_id他のIDカテゴリに該当しない汎用識別子
measurement単位を伴う物理的な測定値と数量
time_duration時間の長さや期間を示す表現
ラベル説明規制への準拠
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 パラメータでマーカーの形式を制御します:

モードマーカー例
redactedすべてのエンティティに {REDACTED}Hi {REDACTED}
entity_type波括弧で囲まれたエンティティタイプHi {NAME}
enumerated_entity_typeエンティティタイプと出現回数のカウンターHi {NAME_0}(デフォルト)

エンティティの検出と秘匿化は、combined マルチチャンネル出力形式ではサポートされていません。

エンティティの秘匿化はScribe v2 Realtimeでも利用できます。上記と同じ形式で、entity_redaction と entity_redaction_mode をクエリパラメータとして渡してください。確定した各文字起こしの後に、元の text と redacted_text を含む redacted_transcript イベントが続きます。詳しくは、リアルタイムイベントの リファレンスをご覧ください。

次のステップ