Server API Whisper: opzioni di configurazione e fase di testo
Un server API Whisper è un servizio HTTP che accetta audio e restituisce una trascrizione. Gestisce solo la voce, quindi qualsiasi elaborazione successiva del testo richiede un modello di testo separato.
Aggiornato

Punti chiave
- Whisper è un modello speech-to-text; un server lo espone tramite un endpoint HTTP.
- Puoi noleggiare un endpoint ospitato, ospitarlo in autonomia o eseguire un binario locale.
- Questa API è solo per il testo: esegue la fase successiva alla trascrizione, non quella audio.
- Le due fasi si collegano con poche righe di Python usando due volte l'SDK OpenAI.
La risposta breve
Whisper è un modello open-source di riconoscimento vocale pubblicato da OpenAI. Da solo è un file modello e del codice di inferenza. Un server espone un'interfaccia HTTP, così la tua app può inviare un file audio e ricevere testo invece di chiamare direttamente le funzioni Python.
La maggior parte dei server replica la struttura dell'endpoint di trascrizione OpenAI, POST /v1/audio/transcriptions, che accetta un upload multipart con il file audio e il nome del modello. Questa struttura permette alla stessa libreria client di comunicare con un servizio ospitato, un container sulla tua macchina o un wrapper scritto da altri.
- Inputo: un file audio, solitamente mp3, wav, m4a o simile.
- Risultato: testo normale, o JSON con segmenti e timestamp, a seconda del server.
- Non inclusi: riassunti, traduzione in prosa curata, estrazione di elementi operativi. Serve un modello linguistico.
Tre modi per ottenere un server Whisper
1. Un endpoint ospitato
OpenAI offre un endpoint di trascrizione ospitato e altri fornitori vendono trascrizioni basate su Whisper. Paghi a consumo, non gestisci l'hardware e invii il tuo audio alle infrastrutture di altri. I modelli di fatturazione variano tra i fornitori e i servizi vocali spesso fatturano in base alla durata dell'audio, quindi verifica i prezzi attuali prima di impegnarti per volumi elevati.
2. Un wrapper auto-gestito
Diversi progetti open-source avvolgono Whisper o sue reimplementazioni in un server web che imita l'endpoint di trascrizione OpenAI. Lo esegui in Docker su una macchina con GPU, o su CPU se accetti elaborazioni più lente. Questo ti dà controllo su dove va l'audio. Ti rende anche responsabile dei download del modello, degli aggiornamenti, della coda e dei riavvii.
3. Un binario locale
Il progetto whisper.cpp è un adattamento in C e C++ del modello, e il suo repository include un esempio di server HTTP. Funziona su laptop ordinari e piccoli server, il che lo rende una buona scelta per un prototipo o per un singolo utente che trascrive poche registrazioni al giorno. Per batch di centinaia di ore, un servizio con GPU è solitamente più pratico.
Scegli in base a tre domande: dove può viaggiare l'audio, quante ore elabori al mese e chi manterrà attivo il servizio. La fase di testo descritta di seguito funziona allo stesso modo con tutte e tre le opzioni.
Dove si inserisce un'API LLM di testo dopo la trascrizione
Una trascrizione Whisper grezza è un muro di testo. Ha pochi paragrafi, mancano i nomi degli interlocutori a meno che non aggiungi la diarizzazione separatamente, e le parole di riempimento restano. Whisper commette anche errori con nomi di prodotti, gergo e nomi propri. Quasi tutti i progetti reali aggiungono una seconda fase che lavora sul testo.
Lavori tipici della seconda fase:
- Correggi la punteggiatura, dividi in paragrafi, rimuovi gli inizi errati.
- Riassumi una chiamata o una lezione in pochi punti elenco.
- Estrai dati strutturati come decisioni, nomi e date in JSON.
- Riscrivi il parlato in un articolo, una sceneggiatura o note di un evento.
- Traduci o localizza il testo pulito.
È qui che si inserisce questo servizio. È un'API di testo compatibile con OpenAI con un solo modello, uncensored, una finestra di contesto da 100.000 token e lo streaming. Una trascrizione di un'intervista di due ore spesso entra in una singola richiesta, così puoi saltare la logica di frammentazione che finestre di contesto più piccole ti imporrebbero. Per materiale più lungo, consulta la documentazione quickstart per i dettagli della richiesta.
Il modello è ottimizzato per rispondere senza rifiuti di contenuto per l'uso adulto legale. Questo è importante per le pipeline di trascrizione perché l'audio sorgente è imprevedibile: interviste, podcast, letture di narrativa e chiamate di supporto contengono linguaggio forte e argomenti difficili. Un modello che rifiuta di pulire una trascrizione perché il parlante ha usato un parolone spreca una trascrizione a pagamento. L'unico limite rigido è che non vengono accettati contenuti sessuali che coinvolgono i minorenni.
Una pipeline funzionante a due fasi
L'SDK Python OpenAI ti permette di creare due client con URL base diversi. Uno punta al tuo server Whisper, l'altro a questa API. Imposta le variabili d'ambiente per il tuo servizio di trascrizione; il secondo client usa l'URL base di questo sito.
import os
from openai import OpenAI
# Stage 1: any Whisper-compatible transcription server you run or rent.
stt = OpenAI(base_url=os.environ["STT_BASE_URL"], api_key=os.environ["STT_KEY"])
# Stage 2: the text model.
llm = OpenAI(base_url="https://api.whisperapis.com/v1", api_key=os.environ["LLM_KEY"])
with open("call.mp3", "rb") as f:
transcript = stt.audio.transcriptions.create(
model=os.environ["STT_MODEL"], # the model name your server expects
file=f,
)
resp = llm.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "Clean up this transcript: fix punctuation, keep every statement, no commentary."},
{"role": "user", "content": transcript.text},
],
temperature=0.2,
)
print(resp.choices[0].message.content)Due dettagli sono facili da sbagliare. Primo, il nome del modello di trascrizione è quello che il tuo server si aspetta, motivo per cui proviene da una variabile d'ambiente qui. Secondo, la chiave per l'API di testo è separata da qualsiasi chiave che possiedi per il servizio vocale; ciascuna autentica solo il proprio host.
Se preferisci un terminale, la fase di testo è una semplice richiesta di completamento chat:
curl https://api.whisperapis.com/v1/chat/completions \
-H "Authorization: Bearer $LLM_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [
{"role": "user", "content": "Summarize this transcript in five bullet points: ..."}
]
}'L'autenticazione avviene tramite una chiave Bearer nell'intestazione Authorization, e gli endpoint sono POST /v1/chat/completions e GET /v1/models. Puoi ottenere una chiave dalla pagina delle chiavi API; i nuovi account possono richiedere un credito di prova da $0,50 con un solo clic, valido per 7 giorni e senza carta.
Cose che falliscono nella pratica
File audio di grandi dimensioni
Molti server Whisper limitano la dimensione dell'upload e le registrazioni lunghe possono andare in timeout nel mezzo di una richiesta. Dividi l'audio in pezzi da dieci a trenta minuti con uno strumento come ffmpeg, trascrivi ogni pezzo, poi unisci il testo. Poiché l'API di testo accetta fino a 100.000 token, puoi concatenare i pezzi e inviarli come un unico prompt. Il limite del corpo della richiesta su questa API è di 8 MB, molto più di quanto serva per una trascrizione.
Limiti di frequenza e concorrenza
Una chiave completa permette 8 richieste concorrenti e 300 richieste al minuto; la chiave di prova ne permette 2 e 60. Se esegui una coda con molti worker, limitati al limite di concorrenza della tua chiave. Superare il limite restituisce HTTP 429, con il codice rate_limited per le richieste al minuto o concurrency per troppe richieste simultanee. Una richiesta in streaming mantiene il suo slot fino al termine dello streaming, quindi un client bloccato può occupare uno slot più a lungo del previsto. Rallenta e riprova; se la risposta contiene l'header Retry-After: 5, attendi quel tempo.
Errori di trascrizione che l'LLM non può vedere
Se Whisper ha sentito la parola sbagliata, il modello di testo vede solo la parola sbagliata. Potrebbe anche nascondere l'errore facendolo sembrare intenzionale. Inserisci un glossario di nomi e termini nel prompt di sistema e chiedi al modello di segnare i passaggi incerti invece di indovinare. Per materiale critico, tieni la trascrizione originale accanto a quella pulita.
Riempitivi inventati
Whisper a volte produce testo inventato durante il silenzio o la musica. Taglia il silenzio prima di inviare e chiedi alla seconda fase di segnalare le frasi che sembrano fuori luogo. Un temperature basso, come 0,2, mantiene la pulizia vicina alla sorgente.
Cosa non fa questa API
Non trascrive l'audio. Non ci sono input audio, output vocale, generazione di immagini o video, embedding né fine-tuning. È un modello di testo ospitato dietro un endpoint di chat completions, gestito da un provider indipendente, e non è l'API ufficiale di OpenAI o di alcun altro fornitore di modelli. Se il tuo progetto ha bisogno di entrambe le fasi, ti serve un server vocale per la prima e questo servizio per la seconda.
I prompt non sono usati per l'addestramento. Questo è indipendente da ciò che il tuo provider vocale fa con l'audio, quindi leggi i termini del provider in modo autonomo.
Per la pianificazione dei costi, il lato testo viene fatturato per token a $0,15 per milione di token in input e $0,50 per milione di token in output, dal credito prepagato che non scade mai. La pagina prezzi elenca le dimensioni di ricarica e i bonus. Le richieste fallite o rifiutate non vengono addebitate, evitando che i loop di retry ti facciano spendere denaro.
Un modo sensato per iniziare
- Avvia un server compatibile con Whisper, ospitato o locale, e conferma che restituisca testo per un file di un minuto.
- Crea un account, richiedi il credito di prova e esegui il comando curl sopra con una breve trascrizione.
- Collega i due client con lo script Python, usando il tuo prompt di sistema per lo stile di pulizia desiderato.
- Aggiungi una coda solo dopo che il flusso a file singolo funziona, e dimensionala alla concorrenza della tua chiave.
La maggior parte dello sforzo va nel prompt e nella gestione dell'audio, non nel codice di integrazione. Inizia con una registrazione che conosci bene, confronta l'output con ciò che hai sentito e regola le istruzioni prima di scalare.
Altre guide
Domande e risposte
Un server API Whisper è uguale all'API OpenAI?
No. Whisper è un modello, e un server è qualsiasi programma che lo espone tramite HTTP. OpenAI ne esegue una versione ospitata, e molte persone ne eseguono una propria con strumenti open-source che copiano la stessa rotta di trascrizione.
Questa API può trascrivere file audio?
No. Accetta solo testo. Usa un servizio di speech o il tuo server Whisper per il passaggio audio, poi invia la trascrizione qui.
Quale nome di modello devo usare per il passaggio di testo?
Usa uncensored come ID del modello, con l'URL di base https://api.whisperapis.com/v1 e la tua chiave come token Bearer.
Quanto può essere lunga una trascrizione che invio?
La finestra di contesto è di 100.000 token, che coprono prompt e completamento insieme. È sufficiente per molte registrazioni di diverse ore in una singola richiesta.
Ho bisogno di una carta per provarlo?
No. I nuovi utenti possono richiedere un credito di prova da $0,50 con un clic nella pagina della chiave API dopo la registrazione, senza carta.
La tua chiave è a un modulo di distanza
Crea un account, copia la chiave, modifica l'URL di base. È tutta la configurazione.