Audioverarbeitung mit Gemma

Audio und gesprochene Sprache sind reichhaltige Datenquellen, um Nutzerabsichten zu erfassen, Informationen über die Welt um uns herum aufzuzeichnen und spezifische Probleme zu verstehen, die gelöst werden müssen. Ab Gemma 3n können Sie Audiodaten in Ihren Prompting- und Generierungsaufgaben mit Gemma verwenden. Sie können es für eine Vielzahl von Audioanalyse- und ‑interpretationsaufgaben verwenden. Das Modell wurde für die folgenden Sprachverarbeitungsaufgaben mit über 100 gesprochenen Sprachen trainiert:

  • Speech-to-Text (STT): Auch als automatische Spracherkennung (ASR) bezeichnet. Hierbei werden Audiodaten mit gesprochener Sprache in Text in derselben Sprache transkribiert. Weitere Informationen
  • Automatische Sprachübersetzung (AST): Bei dieser auch als Speech-to-Text-Übersetzung (S2TT) bezeichneten Methode werden gesprochene Audiodaten in einer Sprache in Text in einer anderen Sprache übersetzt. Weitere Informationen

Sie können diese Funktionen in einer Vielzahl von Anwendungen verwenden, z. B.:

  • Sprachgesteuerte Anwendungsschnittstellen entwickeln
  • Transkriptionsdienste für Besprechungen oder Vorträge erstellen
  • Sprachsuche in mehrsprachigen Umgebungen aktivieren

In diesem Leitfaden finden Sie einen Überblick über die Audioverarbeitungsfunktionen von Gemma 3n, einschließlich Datenüberlegungen, Anwendungsbeispielen und Best Practices.

Audiodaten

Digitale Audiodaten können in vielen Formaten und Auflösungen vorliegen. Die tatsächlichen Audioformate, die Sie mit Gemma verwenden können, z. B. MP3- und WAV-Formate, werden durch das Framework bestimmt, das Sie zum Konvertieren von Tondaten in Tensoren auswählen. Hier sind einige spezifische Überlegungen zur Vorbereitung von Audiodaten für die Verarbeitung mit Gemma:

  • Token-Kosten:Jede Sekunde Audio entspricht 6,25 Tokens.
  • Audio-Channels:Audiodaten werden als einzelner Audio-Channel verarbeitet. Wenn Sie Mehrkanal-Audio verwenden, z. B. den linken und rechten Kanal, sollten Sie die Daten auf einen einzelnen Kanal reduzieren, indem Sie Kanäle entfernen oder die Tondaten in einem einzelnen Kanal zusammenfassen.
  • Clip-Länge:Audioclips mit einer Länge von bis zu 30 Sekunden werden empfohlen. Sie können aber auch längere Clips verarbeiten, bis zur Größe des Kontextfensters des Modells abzüglich der von Ihnen angeforderten Ausgabetokens.
  • Abtastrate:Die Audioverarbeitungsrate für den Tokenizer beträgt 16 kHz mit 32-Millisekunden-Frames.
  • Bittiefe:Der Audio-Tokenizer verwendet für jeden Frame im Bereich [-1, 1] 32-Bit-Gleitkommadaten für jede Audio-Probe.

Wenn sich die Audio-Daten, die Sie verarbeiten möchten, erheblich von der Eingabeverarbeitung unterscheiden, insbesondere in Bezug auf Kanäle, Abtastrate und Bit-Tiefe, sollten Sie Ihre Audio-Daten neu abtasten oder zuschneiden, damit sie der Datenauflösung des Modells entsprechen.

Audiocodierung

Wenn Sie Audiodaten mit Ihrer eigenen Code-Implementierung für die Verwendung mit Gemma 3n codieren, sollten Sie den empfohlenen Konvertierungsprozess befolgen. Wenn Sie mit Audiodateien arbeiten, die in einem bestimmten Format codiert sind, z. B. MP3- oder WAV-codierte Daten, müssen Sie diese zuerst mit einer Bibliothek wie ffmpeg in Samples decodieren. Nachdem die Daten decodiert wurden, konvertieren Sie das Audio in Mono-Channel-Wellenformen im Bereich [–1, 1] mit einer float32-Abtastrate von 16 kHz. Wenn Sie beispielsweise mit Stereo-WAV-Dateien mit vorzeichenbehafteten 16-Bit-PCM-Ganzzahlen bei 44, 1 kHz arbeiten, gehen Sie so vor:

  • Audiodaten auf 16 kHz resamplen
  • Stereo- zu Mono-Downmix durch Mittelung der beiden Kanäle
  • Von int16 in float32 konvertieren und durch 32768,0 dividieren, um auf den Bereich [–1, 1] zu skalieren.

Spracherkennung

Gemma 3n ist für die mehrsprachige Spracherkennung trainiert. Sie können damit Audioeingaben in verschiedenen Sprachen in Text transkribieren. Die folgenden Codebeispiele zeigen, wie Sie das Modell auffordern, Text aus Audiodateien mit Hugging Face Transformers zu transkribieren:

import torch
from transformers import AutoProcessor, AutoModelForImageTextToText

GEMMA_MODEL_ID = "google/gemma-3n-E4B-it"

processor = AutoProcessor.from_pretrained(GEMMA_MODEL_ID, device_map="auto")
model = AutoModelForImageTextToText.from_pretrained(
            GEMMA_MODEL_ID, torch_dtype="auto", device_map="auto")

messages = [
    {
        "role": "user",
        "content": [
            {"type": "audio", "audio": "http://localhost/recording_01.wav"},
            {"type": "audio", "audio": "http://localhost/recording_02.wav"},
            {"type": "audio", "audio": "http://localhost/recording_03.wav"},
            {"type": "text", "text": "Transcribe these audio files in order"},
        ]
    }
]

input_ids = processor.apply_chat_template(
        messages,
        add_generation_prompt=True,
        tokenize=True, return_dict=True,
        return_tensors="pt",
)
input_ids = input_ids.to(model.device, dtype=model.dtype)

outputs = model.generate(**input_ids, max_new_tokens=64)

text = processor.batch_decode(
    outputs,
    skip_special_tokens=False,
    clean_up_tokenization_spaces=False
)
print(text[0])

Ein vollständigeres Codebeispiel, einschließlich der Installation der Bibliothek, finden Sie in der Dokumentation Gemma mit Hugging Face Transformers ausführen im Abschnitt „Audio“.

Automatisierte Sprachübersetzung

Gemma 3n wurde für mehrsprachige Sprachübersetzungsaufgaben trainiert. So können Sie gesprochene Audioinhalte direkt in eine andere Sprache übersetzen. Die folgenden Codebeispiele zeigen, wie Sie das Modell mit Hugging Face Transformers auffordern, gesprochene Audioinhalte in Text zu übersetzen:

import torch
from transformers import AutoProcessor, AutoModelForImageTextToText

GEMMA_MODEL_ID = "google/gemma-3n-E4B-it"

processor = AutoProcessor.from_pretrained(GEMMA_MODEL_ID, device_map="auto")
model = AutoModelForImageTextToText.from_pretrained(
            GEMMA_MODEL_ID, torch_dtype="auto", device_map="auto")

messages = [
    {
        "role": "user",
        "content": [
            {"type": "audio", "audio": "https://ai.google.dev/gemma/docs/audio/roses-are.wav"},
            {"type": "text", "text": "Transcribe this audio into English, and then translate it into French."},
        ]
    }
]

input_ids = processor.apply_chat_template(
        messages,
        add_generation_prompt=True,
        tokenize=True, return_dict=True,
        return_tensors="pt",
)
input_ids = input_ids.to(model.device, dtype=model.dtype)

outputs = model.generate(**input_ids, max_new_tokens=64)

text = processor.batch_decode(
    outputs,
    skip_special_tokens=False,
    clean_up_tokenization_spaces=False
)
print(text[0])

Ein vollständigeres Codebeispiel, einschließlich der Installation der Bibliothek, finden Sie in der Dokumentation Gemma mit Hugging Face Transformers ausführen im Abschnitt „Audio“.