自动语音识别
自动语音识别 (ASR),也称为语音到文本 (STT),是将给定的音频转录为文本的任务。
示例应用
- 转录播客
- 构建语音助手
- 为视频生成字幕
有关 automatic-speech-recognition
任务的更多详细信息,请查看其 专用页面!您将在其中找到示例和相关资料。
推荐模型
- openai/whisper-large-v3:OpenAI 的一个强大的 ASR 模型。
- pyannote/speaker-diarization-3.1:强大的说话人分段模型。
探索所有可用的模型并找到最适合您的模型 此处。
使用 API
Python
JavaScript
cURL
import requests
API_URL = "https://api-inference.huggingface.co/models/openai/whisper-large-v3"
headers = {"Authorization": "Bearer hf_***"}
def query(filename):
with open(filename, "rb") as f:
data = f.read()
response = requests.post(API_URL, headers=headers, data=data)
return response.json()
output = query("sample1.flac")
要使用 Python 客户端,请参阅 huggingface_hub
的 软件包参考。
API 规范
请求
有效负载 | ||
---|---|---|
输入* | 字符串 | 作为 base64 编码字符串的输入音频数据。如果未提供 parameters ,您也可以将音频数据作为原始字节有效负载提供。 |
参数 | 对象 | 自动语音识别的其他推理参数 |
返回时间戳 | 布尔值 | 是否输出与生成文本对应的时间戳 |
生成参数 | 对象 | 文本生成过程的临时参数化 |
温度 | 数字 | 用于调节下一个标记概率的值。 |
top_k | 整数 | 要保留用于 top-k 过滤的最高概率词汇标记的数量。 |
top_p | 数字 | 如果设置为浮点数 < 1,则仅保留概率加起来等于或大于 top_p 的最小的一组最可能的标记以进行生成。 |
typical_p | 数字 | 局部典型性衡量预测下一个目标词的条件概率与给定已生成的部分文本,预测随机词的预期条件概率的相似程度。如果设置为小于 1 的浮点数,则保留概率总和等于或大于 typical_p 的最局部典型词的最小集合,用于生成。更多详细信息请参阅这篇论文。 |
epsilon_cutoff | 数字 | 如果设置为严格介于 0 和 1 之间的浮点数,则仅对条件概率大于 epsilon_cutoff 的词进行采样。在论文中,建议的值范围从 3e-4 到 9e-4,具体取决于模型的大小。更多详细信息请参阅截断采样作为语言模型去平滑。 |
eta_cutoff | 数字 | Eta 采样是局部典型采样和 epsilon 采样的混合。如果设置为严格介于 0 和 1 之间的浮点数,则只有当词大于 eta_cutoff 或 sqrt(eta_cutoff) * exp(-entropy(softmax(next_token_logits))) 时才会被考虑。后一项从直观上讲是预期下一个词的概率,按 sqrt(eta_cutoff) 进行缩放。在论文中,建议的值范围从 3e-4 到 2e-3,具体取决于模型的大小。更多详细信息请参阅截断采样作为语言模型去平滑。 |
max_length | 整数 | 生成的文本(包括输入)的最大长度(以词符为单位)。 |
max_new_tokens | 整数 | 要生成的词符的最大数量。优先于 max_length。 |
min_length | 整数 | 生成的文本(包括输入)的最小长度(以词符为单位)。 |
min_new_tokens | 整数 | 要生成的词符的最小数量。优先于 min_length。 |
do_sample | 布尔值 | 在生成新词符时,是否使用采样而不是贪婪解码。 |
early_stopping | 枚举 | 可能的值:never、true、false。 |
num_beams | 整数 | 用于集束搜索的集束数量。 |
num_beam_groups | 整数 | 为了确保不同集束组之间的多样性,将 num_beams 分成的组数。更多详细信息请参阅这篇论文。 |
penalty_alpha | 数字 | 该值平衡了对比搜索解码中的模型置信度和退化惩罚。 |
use_cache | 布尔值 | 模型是否应该使用过去的最后一个键/值注意力来加速解码。 |
可以通过将标头传递到推理 API 来配置某些选项。以下是可用的标头
标头 | ||
---|---|---|
authorization | 字符串 | 当 hf_**** 是具有推理 API 权限的个人用户访问令牌时,以 'Bearer: hf_****' 形式的认证标头。您可以在您的设置页面生成一个。 |
x-use-cache | 布尔值,默认为 true | 推理 API 上有一个缓存层,可以加快我们已经看到的请求的速度。大多数模型可以使用这些结果,因为它们是确定性的(这意味着输出无论如何都会相同)。但是,如果您使用非确定性模型,则可以将此参数设置为阻止使用缓存机制,从而导致一个真正的新的查询。有关缓存的更多信息,请点击此处。 |
x-wait-for-model | 布尔值,默认为 false | 如果模型未准备好,请等待它,而不是接收 503。它限制了完成推理所需的请求数量。建议仅在收到 503 错误后才将此标志设置为 true,因为它会将应用程序中的挂起限制在已知位置。有关模型可用性的更多信息,请点击此处。 |
有关推理 API 标头的更多信息,请查看参数指南。
响应
主体 | ||
---|---|---|
text | 字符串 | 识别的文本。 |
chunks | object[] | 当启用 returnTimestamps 时,chunks 包含模型识别的音频片段列表。 |
text | 字符串 | 模型识别的文本片段 |
timestamps | number[] | 与文本对应的开始和结束时间戳 |