Hoppa till innehållet

Python-guide för taligenkänning: Från ljudfil till transkript

Skriven av
Jack Limebear
Publicerad
Senast uppdaterad

LyssnaLyssna på den här artikeln

Att lägga till taligenkänning i en Python-app brukade vara krångligt. Python-utvecklare behövde själva koda kring transkriberingsprocessen, inklusive förbehandling av ljud, extrahering av funktioner och modellintegrering. Dessutom fick utvecklingsteam hantera ljud på låg nivå, bristande transkriberingskvalitet och fördröjningar mellan talade ord och liveundertexter. 

Framsteg inom ljudmodeller och SDK:er för taligenkänning förändrar detta.

I den här Python-guiden för taligenkänning lär du dig att integrera ElevenLabs Speech to Text-ljudmodeller i ditt Python-projekt för att skapa transkriberingsappar redo för kommersiell användning. 

Sammanfattning

  • Kommersiella Speech to Text-modeller erbjuder funktioner som talarseparering, tidsstämplar på ordnivå och nyckelordsstyrning, som enklare taligenkänningsmodeller saknar. 
  • ElevenAPI ger din Python-kod funktioner för taligenkänning med Scribe v2 och Scribe v2 Realtime. 
  • Utvecklare kan installera ElevenLabs-skills på en AI-kodningsplattform för att generera korrekt Python-kod utifrån officiell API-dokumentation. 
  • Du kan prova ElevenLabs API gratis innan du tecknar en betald plan för kommersiell utveckling. 
Five steps for Python speech recognition tutorial: setup, transcription, streaming, and enterprise features.

Vad den här Python-guiden för taligenkänning omfattar

Den här guiden täcker förutsättningar, API-integrering och avancerade transkriberingsfunktioner som hjälper dig att bygga en Python-app för taligenkänning för företagsanvändning.  

Taligenkänning har mognat de senaste åren, särskilt eftersom stora språkmodeller och neurala nätverk för djupinlärning har förändrat hur Python-utvecklare använder SDK:er för transkribering. Många guider visar hur du bygger enkla transkriberingsappar, men få tar upp de funktioner som en produkt redo för kommersiell användning behöver.

Vi skrev den här guiden för att fylla det gapet. 

Många transkriberingslösningar för företag kräver till exempel följande funktioner:

  • Talarseparering: Möjligheten att identifiera och särskilja enskilda talare i transkriptet.
  • Tidsstämpel: Att noggrant märka varje ord med de relativa timmar, minuter och sekunder då det uttalas. 
  • Stöd för flera språk: Fångar upp tal på olika språk i en och samma inspelning eller livestream med låg felfrekvens per ord. 
  • Nyckelordsstyrning: Att ange särskilda ord, till exempel varumärken, produktnamn och tekniska termer, för att undvika felstavningar i transkript. 
  • Transkribering med låg fördröjning: Svarstider för tal-till-text på millisekundnivå som driver transkriberingsappar i realtid. 

Obs: Den här guiden går längre än att skapa enkla personliga skript för hobby- eller privatprojekt. Den omfattar inte applikationslogik som byggs ovanpå integreringen med Speech to Text API, eftersom den varierar mellan olika verksamheter. 

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

Förutsättningar för Python-integrering av taligenkänning 

Vi har utformat den här guiden kring ElevenAPI, ett produktionsklart API från ElevenLabs som förenklar interaktionen med röstmodeller i din kod. Med ElevenAPI får du tillgång till Scribe v2 och Scribe v2 Realtime, våra ledande röstmodeller för batch- och livetranskribering. 

I stället för att komma åt ElevenLabs Speech to Text-modeller direkt skickar du ljudinspelningar, livestreamar och argument via API-anrop. Ljudmodellen omvandlar sedan ljuddata till text. När den är klar får du transkripten i koden eller via en webhook. 

Följ de här förberedande stegen för att komma igång. 

  1. Registrera dig hos ElevenLabs.
  2. Skapa din API-nyckel.
  3. Spela in ett samtal och ladda upp det till lagring som är offentligt tillgänglig. 

När du är klar går du vidare till nästa avsnitt. 

Konfigurera din miljö 

Innan du integrerar med ElevenLabs modeller ska du konfigurera din Python-miljö för att skydda din ElevenLabs API-nyckel. Precis som med alla API-nycklar rekommenderar vi att du lagrar den som en miljövariabel (en hanterad hemlighet) i .env-filen. 

ELEVENLABS_API_KEY=<your_api_key_here>

När du gör ett API-anrop skickar du miljövariabeln. Det minskar risken att du av misstag exponerar API-nyckeln när du gör API-förfrågningar över ett offentligt nätverk. 

Därefter kör du ett Bash-kommando för att installera elevenlabs, ElevenLabs SDK, i din Python-miljö. SDK:t ger dig tillgång till olika röstmodeller. I det här fallet väljer du mellan Scribe v2 och Scribe v2 Realtime.

pip install elevenlabs
pip install python-dotenv

Du behöver även installera python-dotenv, som ger din Python-kod åtkomst till miljövariabler som lagras i .env-filen. 

Skriv ditt första transkriberingsskript 


När du har konfigurerat Python-miljön kan du transkribera ljudfilen med ElevenLabs Scribe v2. 

ElevenLabs Scribe v2 är en ledande modell för taligenkänning som låter dig transkribera ljudfiler i stor skala. Den identifierar fonem med hög precision även när ljudinspelningen innehåller mycket bakgrundsljud. För att transkribera ljud skickar du inspelningen till modellen via ElevenLabs API och hämtar det färdiga transkriptet. 

Nedan finns ett Python-kodexempel som omvandlar en ljudfil till ett tidsstämplat transkript med talarseparering. 

# 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)

Koden laddar de bibliotek som innehåller de funktioner den behöver. Den laddar också in miljövariablerna som du har deklarerat i programmets miljö. 

Därefter skapar den en ElevenLabs-klient med API-nyckeln som lagras i miljövariabeln. Sedan laddar den ned ljudfilen och omvandlar den till binärdata. 

När du har råa ljuddata skickar du dem till ElevenLabs API tillsammans med flera parametrar.

  • model_id anger vilken tal-till-text-modell du vill använda. Eftersom du skickar en ljudfil är Scribe v2 det bästa alternativet.
  • tag_audio_events låter dig markera segment utan tal, som skratt, fotsteg och annat bakgrundsljud.
  • language_code anger språket i samtalen i inspelningsfilen. När den är inställd på None identifierar modellen språket automatiskt. 
  • diarize anger om du vill att modellen ska identifiera och särskilja olika talare utifrån deras röstegenskaper.

Kör slutligen koden så visas det transkriberade ljudet i terminalen. 

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

Strömmande taligenkänning i Python

Exemplet ovan gäller batchtranskribering, som passar för förinspelade filer. ElevenLabs erbjuder dock även API:er som låter dig bygga strömmande taligenkänning. Till skillnad från batchbearbetning körs taligenkänningen i realtid för att generera transkript medan samtalet pågår. 

För att göra det ansluter du din Python-kod till modellen Scribe v2 Realtime med WebSocket API. 

Scribe v2 Realtime erbjuder en arkitektur som är utvecklad för streaming, med en transkriberingsfördröjning på under 150 ms. Du använder Scribe v2 Realtime för att bygga applikationer som mötes-agenter, tillgänglighetsverktyg och röstaktiverad automatisering. Modellen returnerar ett partiellt transkript medan den bearbetar ljudströmmen. Den returnerar det slutliga transkriptet först när koden bekräftar ett ljudsegment, automatiskt eller manuellt. 

Beroende på ljudkälla och applikationstyp integrerar du taligenkänning med ElevenLabs API antingen på server- eller klientsidan. 

Både streaming på klient- och serversidan låter dig använda ett asynkront workflow. Använd WebSockets för att hantera resultaten i stället för att kontinuerligt fråga API:et. I din kod behöver du skapa hanterare som tar emot partiella och färdiga transkript. 

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

Fördjupning: talarseparering, tidsstämplar och anpassat ordförråd 

Utöver automatisk taligenkänning stöder ElevenLabs Speech to Text-modeller talarseparering, tidsstämplar och anpassat ordförråd. 

  • Talarseparering: Endast batchtranskribering stöder talarseparering. Du aktiverar talarseparering genom att ange argumentet diarize. Transkribering med flera kanaler, ett läge inom batchtranskribering, stöder dock inte talarseparering.
  • Tidsstämplar: Vid batchtranskribering kan du välja mellan tidsstämplar på ord- eller teckennivå. Det gör du genom att ange parametern timestamps_granularity när du använder metoden convert.  
  • Anpassat ordförråd: Både realtids- och batchtranskribering stöder nyckelordsstyrning. Funktionen gör modellen mer benägen att transkribera specifika nyckelord som du anger i en lista. Scribe v2 Realtime stöder upp till 50 nyckelord, medan Scribe v2 stöder 1 000 nyckelord. 

Använd ElevenLabs-skills i AI-kodningsassistenter 

AI-kodningsassistenter snabbar upp utvecklingen. Om du använder verktyg som Claude Code, Cursor, Codex eller liknande AI-kodningsverktyg kan du lägga till ElevenLabs-skills i kodningsmiljön. 

Allt du behöver göra är att köra det här kommandot i plattformens terminal:

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

AI-kodningsagenten laddar ned skillen för tal-till-text från ElevenLabs GitHub-repo och installerar den i den lokala skill-katalogen. Då kan du automatiskt generera Python-kod för taligenkänning utifrån ElevenLabs officiella dokumentation, i stället för att skriva hela API-integreringen från grunden. 

När den är installerad kan du generera Python-kod för taligenkänning bara genom att beskriva vad den ska göra i naturligt språk. Utifrån beskrivningen genererar kodningsassistenten automatiskt kod med skillen för tal-till-text och rätt modell och parametrar.

Om du till exempel skriver ”Skapa ett Python-exempel för taligenkänning som transkriberar med talarseparering och tidsstämplar på ordnivå” i Codex får du ett liknande exempel som det nedan. 

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

Kom igång med ElevenAPI för taligenkänning

ElevenAPI ger dig tillgång till avancerade Speech to Text-modeller för att bygga appar för taligenkänning i Python.

Med ElevenAPI slipper du skriva integrationskod från grunden, vilket kan försena produktutvecklingen. I stället använder du SDK:er som ger tillgång till Speech to Text-tjänster som uppfyller kommersiella krav, som nyckelordsstyrning, talarseparering och tidsstämplar. 

Hämta din ElevenLabs API-nyckel nu och utforska vår officiella dokumentation för att lära dig hur API:et fungerar. 

Vanliga frågor

Liknande artiklar

Skapa med AI-ljud av högsta kvalitet