Audio Course documentation

Создание Демо с Gradio

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Создание Демо с Gradio

Теперь, когда мы настроили модель Whisper для распознавания речи на Дивехи, давайте продолжим и создадим демо с использованием Gradio, чтобы показать ее сообществу!

Первое, что нам нужно сделать, это загрузить дообученную модель, используя класс pipeline() - это уже знакомо из раздела о предварительно обученных моделях. Вы можете заменить идентификатор модели (model_id) на пространство имен вашей дообученной модели на Hugging Face Hub, или на одну из предобученных моделей Whisper для выполнения распознавания речи без настройки (zero-shot):

from transformers import pipeline

model_id = "sanchit-gandhi/whisper-small-dv"  # update with your model id
pipe = pipeline("automatic-speech-recognition", model=model_id)

Во-вторых, мы определим функцию, которая принимает путь к аудиофайлу в качестве входных данных и передает его через конвейер (pipeline). Здесь конвейер автоматически заботится о загрузке аудиофайла, пересэмплировании его до правильной частоты дискретизации и выполнении вывода модели. Затем мы просто вернем преобразованный текст в качестве выходных данных функции. Чтобы обеспечить возможность нашей модели обрабатывать аудиофайлы произвольной длины, мы включим фрагментирование (разбиение на фрагменты), как описано в разделе о предварительно обученных моделях:

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

Мы будем использовать функцию blocks в Gradio, чтобы создать две вкладки в нашем демо: одну для транскрипции с микрофона и другую для загрузки файла.

import gradio as gr

demo = gr.Blocks()

mic_transcribe = gr.Interface(
    fn=transcribe_speech,
    inputs=gr.Audio(source="microphone", type="filepath"),
    outputs=gr.outputs.Textbox(),
)

file_transcribe = gr.Interface(
    fn=transcribe_speech,
    inputs=gr.Audio(source="upload", type="filepath"),
    outputs=gr.outputs.Textbox(),
)

Наконец, мы запускаем демонстрацию Gradio, используя два только что определенных блока:

with demo:
    gr.TabbedInterface(
        [mic_transcribe, file_transcribe],
        ["Transcribe Microphone", "Transcribe Audio File"],
    )

demo.launch(debug=True)

Это запустит демонстрацию Gradio, подобную той, которая работает на пространстве Hugging Face:

Если вы хотите разместить своё демо на платформе Hugging Face Hub, вы можете использовать этот Space в качестве шаблона для своей модели. Для этого выполните следующие шаги:

Щелкните по ссылке, чтобы дублировать шаблон демо в свою учетную запись: https://huggingface.co./spaces/course-demos/whisper-small?duplicate=true

Рекомендуем дать своему Space имя, подобное имени вашей обученной модели (например, whisper-small-dv-demo) и установить видимость на “Public” (Публичный).

После дублирования Space в вашей учетной записи перейдите в раздел “Files and versions” -> “app.py” -> “edit”. Затем измените идентификатор модели на идентификатор вашей обученной модели(строка 6). Прокрутите страницу вниз и нажмите “Commit changes to main” (Зафиксировать изменения в главной версии). Демо перезагрузится, используя вашу обученную модель. Теперь вы можете поделиться этим демо со своими друзьями и родственниками, чтобы они могли использовать модель, которую вы обучили!

Вы можете посмотреть наш видеоурок, чтобы лучше понять, как продублировать Space: YouTube Video

Ожидаем с нетерпением увидеть ваши демо на Hugging Face Hub!