Poznaj możliwości audio dzięki interfejsowi Gemini API

Gemini może odpowiadać na prompty dotyczące dźwięku. Gemini może na przykład:

  • opisywać, streszczać lub odpowiadać na pytania dotyczące treści audio;
  • Prześlij transkrypcję nagrania.
  • podawać odpowiedzi lub transkrypcję dotyczące konkretnego fragmentu nagrania audio;

Ten przewodnik pokazuje różne sposoby interakcji z plikami audio i treściami audio za pomocą interfejsu Gemini API.

Zanim zaczniesz

Zanim wywołasz interfejs Gemini API, upewnij się, że masz zainstalowany wybrany pakiet SDK oraz skonfigurowany i gotowy do użycia klucz interfejsu Gemini API.

Obsługiwane formaty audio

Gemini obsługuje te typy MIME formatu audio:

  • WAV – audio/wav
  • MP3 – audio/mp3
  • AIFF – audio/aiff
  • AAC – audio/aac
  • OGG Vorbis – audio/ogg
  • FLAC – audio/flac

Informacje techniczne dotyczące dźwięku

Gemini nakłada na dźwięk następujące ograniczenia:

  • Gemini reprezentuje każdą sekundę dźwięku za pomocą 32 tokenów. Na przykład 1 minuta dźwięku to 1920 tokenów.
  • Gemini może udzielać odpowiedzi tylko na wypowiedzi w języku angielskim.
  • Gemini może „rozumieć” elementy niewerbalne, takie jak śpiew ptaków czy syreny.
  • Maksymalna obsługiwana długość danych audio w pojedynczym promptu to 9,5 godziny. Gemini nie ogranicza liczby plików audio w pojedynczym promptzie, ale łączna długość wszystkich plików audio w pojedynczym promptzie nie może przekraczać 9,5 godziny.
  • Gemini zmniejsza rozdzielczość plików audio do 16 kb/s.
  • Jeśli źródło dźwięku zawiera wiele kanałów, Gemini łączy te kanały w jeden kanał.

Udostępnianie pliku audio Gemini

Plik audio możesz udostępnić Gemini na jeden z tych sposobów:

  • Prześlij plik audio przed wysłaniem prośby o prompt.
  • Prześlij plik audio jako dane wstawione w żądaniu prompta.

Przesyłanie pliku audio i generowanie treści

Za pomocą interfejsu File API możesz przesłać plik audio o dowolnym rozmiarze. Zawsze używaj interfejsu File API, gdy łączny rozmiar żądania (w tym pliki, prompt tekstowy, instrukcje systemu itp.) przekracza 20 MB.

Aby przesłać plik za pomocą interfejsu File API, wywołaj funkcję media.upload. Poniższy kod przesyła plik audio, a potem używa go w wywołaniu funkcji models.generateContent.

from google import genai

client = genai.Client()

myfile = client.files.upload(file='media/sample.mp3')

response = client.models.generate_content(
  model='gemini-2.0-flash',
  contents=['Describe this audio clip', myfile]
)

print(response.text)

Pobieranie metadanych pliku

Aby sprawdzić, czy interfejs API poprawnie zapisał przesłany plik, i pobrać jego metadane, wywołaj funkcję files.get.

myfile = client.files.upload(file='media/sample.mp3')
file_name = myfile.name
myfile = client.files.get(name=file_name)
print(myfile)

Lista przesłanych plików

Możesz przesłać wiele plików audio (i inne rodzaje plików). Poniższy kod generuje listę wszystkich przesłanych plików:

print('My files:')
for f in client.files.list():
    print(' ', f.name)

Usuwanie przesłanych plików

Pliki są automatycznie usuwane po 48 godzinach. Opcjonalnie możesz ręcznie usunąć przesłany plik. Na przykład:

myfile = client.files.upload(file='media/sample.mp3')
client.files.delete(name=myfile.name)

Podaj plik audio jako dane wstawione w żądaniu.

Zamiast przesyłać plik audio, możesz przekazać dane audio w tym samym wywołaniu, które zawiera prompt.

Następnie prześlij pobrany mały plik audio wraz z promptem do Gemini:

from google.genai import types

with open('media/small-sample.mp3', 'rb') as f:
    audio_bytes = f.read()

response = client.models.generate_content(
  model='gemini-2.0-flash',
  contents=[
    'Describe this audio clip',
    types.Part.from_bytes(
      data=audio_bytes,
      mime_type='audio/mp3',
    )
  ]
)

print(response.text)

Pamiętaj o tych kwestiach dotyczących przesyłania dźwięku jako danych wbudowanych:

  • Maksymalny rozmiar żądania to 20 MB, w tym tekstowe prompty, instrukcje systemu i pliki dostarczone w postaci inline. Jeśli rozmiar pliku spowoduje, że łączny rozmiar żądania przekroczy 20 MB, użyj interfejsu File API, aby przesłać pliki do użycia w żądaniach.
  • Jeśli próbka audio jest używana wielokrotnie, wydajniej jest użyć interfejsu File API.

Więcej sposobów pracy z dźwiękiem

W tej sekcji znajdziesz kilka dodatkowych sposobów na lepsze wykorzystanie dźwięku.

Pobieranie transkrypcji pliku audio

Aby uzyskać transkrypcję, poproś o nią w promptzie. Na przykład:

myfile = client.files.upload(file='media/sample.mp3')
prompt = 'Generate a transcript of the speech.'

response = client.models.generate_content(
  model='gemini-2.0-flash',
  contents=[prompt, myfile]
)

print(response.text)

odwoływać się do sygnatur czasowych w pliku audio,

Prompt może zawierać sygnatury czasowe w formie MM:SS, aby odwoływać się do konkretnych sekcji w pliku audio. Na przykład ten prompt prosi o transkrypcję, która:

  • Rozpoczyna się po 2 minutach i 30 sekundach od początku pliku.
  • Kończy się w 3 minucie i 29 sekundach od początku pliku.
# Create a prompt containing timestamps.
prompt = "Provide a transcript of the speech from 02:30 to 03:29."

Liczba tokenów

Aby uzyskać liczbę tokenów w pliku audio, wywołaj metodę countTokens. Na przykład:

response = client.models.count_tokens(
  model='gemini-2.0-flash',
  contents=[myfile]
)

print(response)

Co dalej?

Ten przewodnik pokazuje, jak przesyłać pliki audio za pomocą interfejsu File API, a następnie generować tekst wyjściowy na podstawie danych wejściowych w formie dźwięku. Więcej informacji znajdziesz w tych materiałach:

  • Strategie wyświetlania promptów dotyczących plików: interfejs Gemini API obsługuje prompty z tekstem, obrazem, dźwiękiem i danymi wideo, które są też nazywane promptami multimodalnymi.
  • Instrukcje systemowe: instrukcje systemowe pozwalają kierować działaniem modelu na podstawie konkretnych potrzeb i przypadków użycia.
  • Wskazówki dotyczące bezpieczeństwa: modele generatywnej AI czasami generują nieoczekiwane wyniki, np. niedokładne, stronnicze lub obraźliwe. Przetwarzanie końcowe i sprawdzanie przez weryfikatorów są niezbędne do ograniczenia ryzyka szkód wynikających z takich danych wyjściowych.