跳到导航

关键词提示

本指南介绍如何结合文本转语音 API 使用关键词提示。

操作指南 · 假设你已完成文本转语音 快速入门。

概览

Scribe v2、Scribe v2 Medical(批处理)和 Scribe v2 Realtime 支持关键词提示, 且需额外付费。详细价格信息请参阅 API 定价 页面。

关键词提示是一项功能,可突出显示单词或短语,使模型更倾向于转录这些内容。这对于转录音频中不常见的特定单词或句子非常有用,例如产品名称、人名或其他特定术语。关键词比其他模型提供的偏置关键词或自定义词汇表更强大,因为它会根据上下文决定是否转录该术语。

批处理(Scribe v2 / Scribe v2 Medical)实时(Scribe v2 Realtime)
最大关键词数量100050
每个关键词最大字符数5020

在批处理转录中,每个关键词最多还可包含 5 个单词。

例如,如果公司名称不是常见短语,或有独特的拼写或发音,可以使用关键词确保模型正确转录。以下是示例音频:

不使用关键词提示时,模型可能会将上述内容转录为:

I work at eleven labs.

其中公司名称使用了错误的写法。使用关键词提示后,可以确保模型以正确的拼写和格式转录上述内容:

I work at ElevenLabs.

上下文

模型能够根据上下文确定是否应转录某个术语。提供关键词 “ElevenLabs” 后,上述音频会按预期转录;同时,模型仍可根据上下文正确转录以下内容:

输出如下转录文本:

I've worked at many labs. In fact I've worked at eleven labs.

批处理转录

通过向 convert 方法传递 keyterms 参数,即可在批处理文本转语音 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-keyterm-prompting.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
# Keyterms to prompt the model with.
# Up to 1000 keyterms can be provided, with a maximum length of 50 characters each
keyterms=["ElevenLabs"],
)
print(transcription)

实时流式传输

实时文本转语音 WebSocket API 也支持关键词提示。连接时传递 keyterms 参数。

connection = await elevenlabs.speech_to_text.realtime.connect(RealtimeUrlOptions(
model_id="scribe_v2_realtime",
keyterms=["ElevenLabs"],
))

直接使用 WebSocket API 时,请将关键词作为查询参数传递:

wss://api.elevenlabs.io/v1/speech-to-text/realtime?model_id=scribe_v2_realtime&keyterms=ElevenLabs&keyterms=AnotherTerm

后续步骤