Przejdź do treści

Poradnik rozpoznawania mowy w Pythonie: od pliku audio do transkrypcji

Opublikowano
Ostatnia aktualizacja

PosłuchajPosłuchaj tego artykułu

Dodanie funkcji rozpoznawania mowy do aplikacji Python było kiedyś uciążliwe. Deweloperzy Python musieli sami obsłużyć proces transkrypcji: wstępne przetwarzanie audio, ekstrakcję cech i integrację modelu. Zespoły inżynieryjne mierzyły się też z niskopoziomową obsługą audio, słabą jakością transkrypcji i opóźnieniami między wypowiadanymi słowami a napisami na żywo. 

Postęp w modelach audio i SDK do rozpoznawania mowy to zmienia.

W tym poradniku rozpoznawania mowy w Pythonie dowiesz się, jak zintegrować modele audio ElevenLabs Speech to Text ze swoim projektem Python, aby tworzyć aplikacje do transkrypcji gotowe do użytku komercyjnego. 

Podsumowanie

  • Komercyjne modele Speech to Text oferują funkcje takie jak diaryzacja mówców, znaczniki czasu na poziomie słów i podpowiedzi słów kluczowych, których brakuje podstawowym modelom rozpoznawania mowy. 
  • ElevenAPI dodaje funkcje rozpoznawania mowy do kodu Python dzięki Scribe v2 i Scribe v2 Realtime. 
  • Deweloperzy mogą zainstalować umiejętności ElevenLabs na platformie do programowania z AI, aby generować dokładny kod Python na podstawie oficjalnej dokumentacji API. 
  • Możesz bezpłatnie wypróbować API ElevenLabs przed przejściem na płatny plan do tworzenia komercyjnego oprogramowania. 
Five steps for Python speech recognition tutorial: setup, transcription, streaming, and enterprise features.

Co obejmuje ten poradnik rozpoznawania mowy w Pythonie

Ten poradnik obejmuje wymagania wstępne, integrację API i zaawansowane funkcje transkrypcji, które pomogą ci stworzyć aplikację do rozpoznawania mowy w Pythonie dla firm.  

Rozpoznawanie mowy znacznie rozwinęło się w ostatnich latach, zwłaszcza gdy duże modele językowe i sieci neuronowe głębokiego uczenia zmieniły sposób, w jaki deweloperzy Python korzystają z SDK do transkrypcji. Wiele poradników pokazuje, jak tworzyć podstawowe aplikacje do transkrypcji, ale niewiele opisuje funkcje potrzebne w produkcie gotowym do użytku komercyjnego.

Napisaliśmy ten poradnik, by wypełnić tę lukę. 

Na przykład wiele firmowych rozwiązań do transkrypcji wymaga tych funkcji:

  • Diaryzacja mówców: Możliwość rozpoznania i rozdzielenia poszczególnych mówców w transkrypcji.
  • Znaczniki czasu: Dokładne oznaczanie każdego słowa względną godziną, minutą i sekundą, w której zostało wypowiedziane. 
  • Obsługa wielu języków: Rejestruje wypowiedzi w różnych językach w ramach jednego nagrania lub transmisji na żywo przy niskim współczynniku błędów słów. 
  • Podpowiedzi słów kluczowych: Mapowanie specjalnych słów, takich jak marki, nazwy produktów i terminy techniczne, by uniknąć błędów w transkrypcji. 
  • Transkrypcja o niskich opóźnieniach: Reakcja zamiany mowy na tekst w milisekundach, która zasila aplikacje do transkrypcji w czasie rzeczywistym. 

Uwaga: Ten poradnik wykracza poza tworzenie prostych osobistych skryptów do projektów hobbystycznych lub prywatnych. Nie obejmuje logiki aplikacji zbudowanej na integracji Speech to Text API, ponieważ różni się ona zależnie od firmy. 

Enterprise transcription needs: diarization, word timestamps, languages, keyterms, and low latency.

Wymagania wstępne integracji rozpoznawania mowy w Pythonie 

Ten poradnik opiera się na ElevenAPI — gotowym do użycia produkcyjnego API od ElevenLabs, które upraszcza obsługę modeli głosowych w kodzie. Dzięki ElevenAPI masz dostęp do Scribe v2 i Scribe v2 Realtime, naszych czołowych modeli głosowych do transkrypcji wsadowej i na żywo. 

Zamiast uzyskiwać bezpośredni dostęp do modeli ElevenLabs Speech to Text, przekazujesz nagrania audio, transmisje na żywo i argumenty przez wywołania API. Model audio zamienia potem dane audio na tekst. Po zakończeniu otrzymujesz transkrypcje w kodzie lub przez webhook. 

Aby zacząć, wykonaj te kroki przygotowawcze. 

  1. Zarejestruj się w ElevenLabs.
  2. Utwórz klucz API.
  3. Nagraj rozmowę i prześlij ją do publicznie dostępnego magazynu plików. 

Gdy wszystko będzie gotowe, przejdź do następnej sekcji. 

Konfiguracja środowiska 

Przed integracją z modelami ElevenLabs skonfiguruj środowisko Python, aby zabezpieczyć klucz API ElevenLabs. Jak wszystkie klucze API, zalecamy przechowywać go jako zmienną środowiskową (zarządzany sekret) w pliku .env. 

ELEVENLABS_API_KEY=<your_api_key_here>

Podczas wywołania API przekazujesz zmienną środowiskową. Dzięki temu nie ujawnisz przypadkowo klucza API podczas wysyłania żądań API przez publiczną sieć. 

Następnie uruchom polecenie Bash, aby zainstalować elevenlabs, SDK ElevenLabs, w środowisku Python. SDK zapewnia dostęp do różnych modeli głosowych. W tym przypadku wybierasz między Scribe v2 a Scribe v2 Realtime.

pip install elevenlabs
pip install python-dotenv

Musisz też zainstalować python-dotenv, który pozwala kodowi Python uzyskać dostęp do zmiennych środowiskowych zapisanych w pliku .env. 

Tworzenie pierwszego skryptu do transkrypcji 


Po skonfigurowaniu środowiska Python możesz transkrybować plik audio za pomocą ElevenLabs Scribe v2. 

ElevenLabs Scribe v2 to wiodący model rozpoznawania mowy, który pozwala transkrybować pliki audio na dużą skalę. Z dużą dokładnością wykrywa fonemy nawet wtedy, gdy nagranie zawiera znaczny szum tła. Aby transkrybować audio, wysyłasz nagranie do modelu przez API ElevenLabs i pobierasz gotową transkrypcję. 

Poniżej znajdziesz fragment kodu Python, który zamienia plik audio w transkrypcję ze znacznikami czasu i podziałem na mówców. 

# example.py
import os
from dotenv import load_dotenv
from io import BytesIO
import requests
from elevenlabs.client import ElevenLabs

load_dotenv()

elevenlabs = ElevenLabs(
  api_key=os.getenv("ELEVENLABS_API_KEY"),
)

audio_url = (
    "https://storage.googleapis.com/eleven-public-cdn/audio/marketing/nicole.mp3"
)
response = requests.get(audio_url)
audio_data = BytesIO(response.content)

transcription = elevenlabs.speech_to_text.convert(
    file=audio_data,
    model_id="scribe_v2", # Model to use
    tag_audio_events=True, # Tag audio events like laughter, applause, etc.
    language_code="eng", # Language of the audio file. If set to None, the model will detect the language automatically.
    diarize=True, # Whether to annotate who is speaking
)

print(transcription)

Kod ładuje potrzebne biblioteki, które zapewniają wymagane funkcje. Ładuje też zadeklarowane zmienne środowiskowe do środowiska programu. 

Następnie tworzy klienta ElevenLabs, używając klucza API zapisanego w zmiennej środowiskowej. Pobiera plik audio i konwertuje go na dane binarne. 

Gdy masz surowe dane audio, wysyłasz je do API ElevenLabs wraz z kilkoma parametrami.

  • model_id wskazuje model zamiany mowy na tekst, którego chcesz użyć. Ponieważ przesyłasz plik audio, najlepszym wyborem jest Scribe v2.
  • tag_audio_events pozwala oznaczać fragmenty bez mowy, takie jak śmiech, kroki i inne odgłosy tła.
  • language_code oznacza język rozmów w pliku nagrania. Jeśli ustawisz None, model automatycznie wykryje język. 
  • diarize wskazuje czy chcesz, aby model profilował i rozdzielał różnych mówców na podstawie charakterystyki ich głosów.

Na koniec uruchom kod, a w terminalu zobaczysz transkrypcję audio. 

Speech-to-text API parameters: model, audio events, language, and speaker diarization.

Strumieniowe rozpoznawanie mowy w Pythonie

Powyższy przykład dotyczy transkrypcji wsadowej, odpowiedniej dla wcześniej nagranych plików. ElevenLabs oferuje jednak także API, które pozwalają tworzyć strumieniowe rozpoznawanie mowy. W przeciwieństwie do przetwarzania wsadowego ten tryb rozpoznaje mowę w czasie rzeczywistym i tworzy transkrypcję w trakcie rozmowy. 

Aby to zrobić, połącz kod Python z modelem Scribe v2 Realtime przez WebSocket API. 

Scribe v2 Realtime oferuje architekturę zaprojektowaną przede wszystkim do streamingu i opóźnienie transkrypcji poniżej 150 ms. Scribe v2 Realtime wykorzystasz do tworzenia aplikacji takich jak agenci spotkań, agenci, narzędzia ułatwień dostępu i automatyzacja sterowana głosem. Model zwraca częściową transkrypcję podczas przetwarzania strumienia audio. Zwraca końcową transkrypcję dopiero, gdy kod zatwierdzi segment audio — automatycznie lub ręcznie. 

Zależnie od źródła audio i typu aplikacji integrujesz rozpoznawanie mowy z API ElevenLabs po stronie serwera lub klienta. 

Streaming po stronie klienta i serwera pozwala korzystać z asynchronicznego workflow. Zamiast stale odpytywać API, użyj WebSocketów do obsługi wyników. W kodzie musisz utworzyć handlery odbierające częściowe i końcowe transkrypcje. 

Scribe v2 transcribes prerecorded files; Realtime streams live audio with under-150 ms latency.

Dalej: diaryzacja, znaczniki czasu i własne słownictwo 

Poza automatycznym rozpoznawaniem mowy, modele ElevenLabs Speech to Text obsługują diaryzację, znaczniki czasu i własne słownictwo. 

  • Diaryzacja: Tylko transkrypcja wsadowa obsługuje diaryzację mówców. Włączasz ją, ustawiając argument diarize. Transkrypcja wielokanałowa, będąca trybem transkrypcji wsadowej, nie obsługuje jednak diaryzacji.
  • Znaczniki czasu: Podczas transkrypcji wsadowej możesz wybrać znaczniki czasu na poziomie słów lub znaków. Aby to zrobić, ustaw parametr timestamps_granularity podczas używania metody convert.  
  • Własne słownictwo: Zarówno transkrypcja w czasie rzeczywistym, jak i wsadowa obsługują podpowiedzi słów kluczowych. Ta funkcja ukierunkowuje model na transkrypcję konkretnych słów kluczowych z podanej listy. Scribe v2 Realtime obsługuje do 50 słów kluczowych, a Scribe v2 — do 1000. 

Korzystanie z umiejętności ElevenLabs w asystentach programowania AI 

Asystenci programowania AI przyspieszają rozwój. Jeśli używasz narzędzi takich jak Claude Code, Cursor, Codex lub podobnych, możesz dodać umiejętności ElevenLabs w środowisku programistycznym. 

Wystarczy uruchomić to polecenie w terminalu platformy:

 npx skills add elevenlabs/skills --skill speech-to-text 

Agent programowania AI pobierze umiejętność zamiany mowy na tekst z repozytorium ElevenLabs na GitHubie i zainstaluje ją w lokalnym katalogu umiejętności. Dzięki temu możesz automatycznie generować kod Python do rozpoznawania mowy na podstawie oficjalnej dokumentacji ElevenLabs, zamiast pisać całą integrację API od zera. 

Po instalacji możesz generować kod Python do rozpoznawania mowy, po prostu opisując w rozmowie, co ma robić. Na podstawie opisu asystent programowania automatycznie wygeneruje kod z użyciem umiejętności zamiany mowy na tekst oraz poprawnego modelu i parametrów.

Na przykład jeśli wpiszesz w Codex „Utwórz fragment kodu Python do rozpoznawania mowy, który transkrybuje z diaryzacją i znacznikami czasu na poziomie słów”, otrzymasz podobny fragment jak poniżej. 

Chat showing Python code for ElevenLabs speech transcription with speaker diarization and word timestamps.

Zacznij z ElevenAPI do rozpoznawania mowy

ElevenAPI zapewnia dostęp do zaawansowanych modeli Speech to Text do tworzenia aplikacji rozpoznawania mowy w Pythonie.

Dzięki ElevenAPI unikasz pisania od zera kodu integracyjnego, który opóźnia rozwój produktu. Zamiast tego korzystasz z SDK udostępniających usługi Speech to Text spełniające wymagania komercyjne, takie jak podpowiedzi słów kluczowych, diaryzacja i znaczniki czasu. 

Pobierz teraz klucz API ElevenLabs i sprawdź naszą oficjalną dokumentację, aby dowiedzieć się, jak działa API. 

Najczęstsze pytania

Podobne artykuły

Twórz z najwyższej jakości audio AI