Introduzione
Invia un URL audio e, se vuoi, la lingua parlata, un elenco di termini chiave e tre interruttori: numeri in cifre, intercalari e trascrizione per canale. Il task restituisce la trascrizione come testo, più una trascrizione strutturata con i tempi di ogni parola, la lingua rilevata e la durata dell'audio; non viene prodotto alcun file. SpicyAPI non applica alcun filtro dei contenuti: il parlato senza filtri viene trascritto così come è stato pronunciato. La fatturazione avviene al secondo di audio.
| Campo | Valore |
|---|---|
| Input | Audio |
| Output | Testo |
| Campo obbligatorio |
|
| Campi facoltativi | language (25 codici), |
| Risultato | Trascrizione in testo, più output.transcript con tempi per parola, lingua e durata; per canale con multichannel |
| Quantità fatturata | Secondi di audio; un file caricato viene riservato per la sua durata, un URL per il massimo di due ore |
| Tempo tipico | Circa 3 secondi per una clip di 10 secondi, circa 15 secondi per un'ora |
| Conservazione | L'audio caricato viene eliminato dopo un giorno; la trascrizione viene cancellata con i dati del prompt |
Parametri della richiesta
| Parametro | Obbligatorio | Nota |
|---|---|---|
audio_url | Sì | L'audio da trascrivere: un MP3 o WAV caricato, oppure un URL pubblico verso MP3, WAV, M4A, FLAC, OGG, Opus, AAC, MP4 o MKV. Da 1 secondo a 2 ore. almeno 1 caratteri |
language | No | La lingua parlata come codice di lingua. Lascialo vuoto per rilevare la lingua automaticamente; il parlato in qualsiasi lingua supportata viene trascritto in entrambi i casi. |
text_normalization | No | Se attivo, numeri, prezzi, date e unità pronunciati vengono scritti in cifre: «$1,250» e «March 14» invece delle parole. Richiede language. Predefinito: |
keyterms | No | Fino a 100 parole o brevi espressioni (50 caratteri ciascuna) da privilegiare nella trascrizione: nomi, marchi, gergo. Non cambia il prezzo. Predefinito: |
filler_words | No | Se attivo, gli intercalari come um e uh restano nella trascrizione; disattivato (default), vengono rimossi. Non cambia il prezzo. Predefinito: |
multichannel | No | Se attivo, ogni canale di un file multicanale (fino a 8) viene trascritto separatamente e torna su una riga propria, nell'ordine dei canali. Predefinito: |
Prezzi
$0.00003 / secondo di audio
Fatturato al secondo di audio. Alla creazione del task viene riservato il prezzo della durata reale se l'audio è caricato, oppure quello del massimo di due ore per un URL audio; paghi la durata reale e il resto viene sbloccato. Una richiesta non riuscita non viene fatturata.
Casi d’uso
Note vocali e storie audio
Il parlato senza filtri viene trascritto così come viene pronunciato, quindi messaggi vocali, registrazioni di roleplay e storie audio possono essere cercati, sottotitolati o modificati come testo.
Registrazioni di chiamate
Le registrazioni con ogni lato su un canale proprio tornano come una riga per lato quando multichannel è attivo. Senza, i nostri test hanno restituito solo uno dei due lati, quindi attivalo per le chiamate a canali separati.
Verificare il parlato generato
Ripassa nel modello un risultato di sintesi vocale e confronta la trascrizione con il copione: parole saltate, un finale tagliato o un tag letto ad alta voce saltano subito all'occhio.
Nomi, marchi e numeri
Elenca i nomi insoliti come termini chiave e attiva la normalizzazione del testo: la trascrizione scrive i nomi a modo tuo e prezzi e date come $1,250 o March 14.
Consigli avanzati
Punta
audio_urlsull'audioCarica un MP3 o un WAV, oppure passa un URL pubblico che risponda con l'audio stesso: una pagina di player o un link di condivisione che restituisce HTML non funziona. Da 1 secondo a 2 ore.
Aggiungi quello che sai
Imposta language se conosci la lingua, elenca nomi e marchi in keyterms e attiva
text_normalizationse vuoi i numeri in cifre.text_normalizationrichiede language.Leggi il testo dal task
La trascrizione arriva come testo nel risultato del task, e output.transcript elenca ogni parola con il tempo di inizio e di fine. Con multichannel c'è una riga per canale, nell'ordine dei canali. Copiala nel tuo storage se ti serve più avanti.
Cosa restituisce
La trascrizione come testo nel risultato del task, più output.transcript: la lingua rilevata e il suo codice, la durata dell'audio in secondi e ogni parola con il tempo di inizio e di fine in secondi. Con multichannel, output.transcript.channels contiene lo stesso per ogni canale. Non viene prodotto alcun file e nulla entra nello storage dei media. Le etichette dei parlanti non sono incluse.
Inviare l'audio
audio_url accetta un MP3 o WAV caricato, oppure un URL pubblico verso MP3, WAV, M4A, FLAC, OGG, Opus, AAC, MP4 o MKV, da 1 secondo a 2 ore. L'URL deve rispondere con l'audio stesso. L'audio grezzo senza intestazione di file (PCM, μ-law, A-law) non è accettato.
Lingua e numeri
Se language resta vuoto, la lingua viene rilevata; il parlato in una qualsiasi delle 25 lingue supportate viene trascritto in entrambi i casi. Impostalo e attiva text_normalization per avere numeri, prezzi, date e unità in forma scritta: nel nostro test «one thousand two hundred fifty dollars on March fourteenth» è diventato «$1,250 on March 14». text_normalization richiede language.
Termini chiave e intercalari
keyterms accetta fino a 100 termini di massimo 50 caratteri, uno per riga. Nel nostro test «Xandrelle» e «Qorvessa» sono tornati come «Xandrel» e «Corvessa» senza di essi, e perfettamente giusti con essi. filler_words mantiene um e uh, che di default vengono rimossi.
Più canali
Attiva multichannel per le registrazioni con ogni parlante su un canale proprio. Ogni canale viene trascritto separatamente e torna su una riga propria, nell'ordine dei canali. Lascialo disattivato solo se tutti i canali portano lo stesso suono: nei nostri test un file stereo con un parlante diverso su ogni lato è tornato senza uno dei due parlanti.
Fatturazione
Fatturato al secondo di audio. Alla creazione del task viene riservato il prezzo della durata reale se l'audio è caricato, oppure quello del massimo di due ore per un URL audio; paghi la durata reale e il resto viene sbloccato. Nessuna opzione cambia il prezzo. Le richieste non riuscite non vengono fatturate.
Contenuti
SpicyAPI non aggiunge filtri sui contenuti. Nei nostri test il parlato senza filtri è tornato parola per parola, senza asterischi, bip o lacune.
SpicyAPI non aggiunge alcun filtro dei contenuti: il parlato viene trascritto così come è stato pronunciato, invece di essere oscurato o rifiutato. Sei responsabile dei diritti sull'audio che invii e del consenso delle persone registrate.
Avvio rapido dell’API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "xai/grok-stt/speech-to-text",
"input": {
"audio_url": "https://example.com/reference.mp3"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Nel riferimento dell’API trovi autenticazione, schema completo, polling e gestione degli errori.





