音频课程文档
使用 Gradio 构建演示
并获得增强的文档体验
开始使用
使用 Gradio 构建演示
现在我们已经微调了一个用于迪维希语语音识别的 Whisper 模型,接下来让我们构建一个 Gradio 演示,向社区展示它!
首先要做的是使用 pipeline()
类加载微调后的检查点——这在预训练模型部分已经非常熟悉了。您可以将 model_id
更改为 Hugging Face Hub 上微调模型的命名空间,或者更改为预训练的 Whisper 模型之一,以执行零样本语音识别
from transformers import pipeline
model_id = "sanchit-gandhi/whisper-small-dv" # update with your model id
pipe = pipeline("automatic-speech-recognition", model=model_id)
其次,我们将定义一个函数,该函数接收音频输入的 filepath 并将其传递给管道。在这里,管道会自动处理音频文件的加载、将其重新采样到正确的采样率以及使用模型运行推理。然后我们可以简单地将转录文本作为函数的输出返回。为了确保我们的模型可以处理任意长度的音频输入,我们将启用预训练模型部分中描述的分块功能
def transcribe_speech(filepath):
output = pipe(
filepath,
max_new_tokens=256,
generate_kwargs={
"task": "transcribe",
"language": "sinhalese",
}, # update with the language you've fine-tuned on
chunk_length_s=30,
batch_size=8,
)
return output["text"]
我们将使用 Gradio 的 blocks 功能在我们的演示中启动两个选项卡:一个用于麦克风转录,另一个用于文件上传。
import gradio as gr
demo = gr.Blocks()
mic_transcribe = gr.Interface(
fn=transcribe_speech,
inputs=gr.Audio(sources="microphone", type="filepath"),
outputs=gr.components.Textbox(),
)
file_transcribe = gr.Interface(
fn=transcribe_speech,
inputs=gr.Audio(sources="upload", type="filepath"),
outputs=gr.components.Textbox(),
)
最后,我们使用刚刚定义的两个块启动 Gradio 演示
with demo:
gr.TabbedInterface(
[mic_transcribe, file_transcribe],
["Transcribe Microphone", "Transcribe Audio File"],
)
demo.launch(debug=True)
这将启动一个 Gradio 演示,类似于 Hugging Face Space 上运行的那个。
如果您希望将您的演示托管在 Hugging Face Hub 上,您可以使用此 Space 作为您的微调模型的模板。
点击链接将模板演示复制到您的帐户:https://huggingface.co/spaces/course-demos/whisper-small?duplicate=true
我们建议您的 Space 名称与您的微调模型相似(例如 whisper-small-dv-demo),并将可见性设置为“公开”。
将 Space 复制到您的帐户后,点击“Files and versions”->“app.py”->“edit”。然后将模型标识符更改为您的微调模型(第 6 行)。滚动到页面底部,点击“Commit changes to main”。演示将重新启动,这次使用您的微调模型。您可以与您的朋友和家人分享此演示,以便他们可以使用您训练的模型!
请查看我们的视频教程以更好地了解如何复制 Space 👉️ YouTube 视频
我们期待在 Hub 上看到您的演示!
< > 在 GitHub 上更新