1. Panoramica dei modelli vocali

1.1. Introduzione ai modelli TTS e STT di OpenAI

Modello Text-to-Speech (TTS)

Il modello TTS di OpenAI può convertire i dati di testo in output vocale. Questo processo comporta l'analisi del testo, l'applicazione di algoritmi di sintesi vocale e l'adattamento della qualità del suono. Consente al computer di leggere qualsiasi testo scritto, rendendo i contenuti più comprensibili e accessibili. Il TTS è una tecnologia importante per persone non vedenti, automobilisti o chiunque preferisca ricevere informazioni tramite l'ascolto.

Modello Speech-to-Text (STT)

Corrispondente al TTS, il modello STT può convertire le informazioni vocali in testo scritto. Durante il processamento dell'input audio originale, il sistema STT esegue prima il rilevamento vocale, seguito dall'estrazione delle caratteristiche. Successivamente mappa il segnale audio al vocabolario utilizzando modelli acustici e linguistici, generando infine un output testuale. La tecnologia STT è ampiamente utilizzata nel riconoscimento vocale, nella trascrizione di riunioni e nella generazione di didascalie in tempo reale.

1.2. Scenari di Applicazione

  • Lettura ad alta voce di blog
  • Generazione di discorsi multilingue

3. API Text-to-Speech

3.1. Partenza rapida

In questa sezione, dimostreremo come convertire rapidamente il testo in voce utilizzando il comando curl e un client Python. Sia che tu sia uno sviluppatore o un utente non tecnico, puoi generare facilmente file vocali semplicemente inviando una richiesta API.

Invio di Richieste Utilizzando Curl

Per generare la voce utilizzando lo strumento a riga di comando curl, segui questi passaggi:

  1. Assicurati che curl sia installato sul tuo sistema e che tu abbia una chiave API valida di OpenAI.
  2. Utilizza il seguente comando curl per convertire il testo in voce:
curl https://api.openai.com/v1/audio/speech \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "Oggi è una giornata fantastica per costruire prodotti che la gente ama!",
    "voice": "alloy"
  }' \
  --output speech.mp3

Nel comando sopra, $OPENAI_API_KEY rappresenta la tua chiave API, il campo input è il testo che desideri convertire, il campo model specifica il modello vocale da utilizzare e il parametro voice seleziona la voce. Qui scegliamo la voce sintetica alloy. L'opzione finale --output specifica il nome e il formato del file di output.

Utilizzo del Client Python

Se preferisci utilizzare il linguaggio di programmazione Python, puoi utilizzare il seguente esempio di codice:

from openai import OpenAI

client = OpenAI()

response = client.audio.speech.create(
    model="tts-1",
    voice="alloy",
    input="Oggi è una giornata fantastica per costruire prodotti che la gente ama!"
)

response.stream_to_file("output.mp3")

In questo snippet di codice, importiamo prima la libreria openai e creiamo un'istanza del client OpenAI. Quindi utilizziamo il metodo audio.speech.create per inviare una richiesta, specificando il modello, la voce e il testo da convertire. Infine, utilizziamo il metodo stream_to_file per salvare il flusso vocale generato in un file.

3.2. Scelta della Qualità Audio e della Voce

La selezione della giusta qualità audio e della voce per il tuo progetto è un passo cruciale per garantire la migliore esperienza utente. La nostra API offre due opzioni di modelli di qualità audio: tts-1 e tts-1-hd.

  • tts-1: Fornisce una latenza inferiore, adatta per applicazioni in tempo reale, ma con qualità audio relativamente più bassa.
  • tts-1-hd: Offre un'uscita audio di qualità superiore, adatta per esigenze di generazione vocale ad alta qualità non in tempo reale.

Inoltre, l'API TTS di OpenAI offre varie opzioni vocali:

  • Alloy
  • Echo
  • Fable
  • Onyx
  • Nova
  • Shimmer

In base ai requisiti del progetto e al pubblico di destinazione, puoi testare diversi campioni vocali per scegliere la voce più adatta. Considera fattori come lo stile di parlato, la velocità del discorso e l'intonazione per trovare una voce che trasmetta emozioni e professionalità appropriate.

3.3. Formati di Output e Lingue Supportate

L'API TTS di OpenAI utilizza di default il formato di output MP3, ma supporta anche vari altri formati audio:

  • Opus: Adatto per lo streaming e la comunicazione su Internet, con bassa latenza.
  • AAC: Utilizzato per la compressione audio digitale, preferito da piattaforme come YouTube, Android e iOS.
  • FLAC: Formato di compressione audio senza perdita utilizzato dagli appassionati di audio per l'archiviazione.

Per quanto riguarda il supporto linguistico, l'API segue principalmente il modello Whisper, offrendo una vasta gamma di opzioni linguistiche per supportare molte lingue nazionali.

3.4. Funzionalità di Streaming Audio in Tempo Reale

Per soddisfare le esigenze delle applicazioni in tempo reale, la nostra API fornisce supporto per lo streaming audio in tempo reale. Di seguito è riportato un esempio in Python per implementare lo streaming audio in tempo reale:

from openai import OpenAI

client = OpenAI()

response = client.audio.speech.create(
    model="tts-1",
    voice="alloy",
    input="Ciao mondo! Questo è un test di streaming.",
)

response.stream_to_file("output.mp3")

4. API di Trascrizione del Parlato

4.1. Guida Rapida

In questa sezione, presenteremo principalmente la funzionalità dell'API di OpenAI per la trascrizione del parlato.

Innanzitutto, è necessario disporre di una chiave API valida di OpenAI e preparare un file audio.

È possibile utilizzare il comando curl per inviare una richiesta POST contenente il file audio. Sostituire OPENAI_API_KEY con la propria chiave API e impostare il percorso del file corretto.

curl --request POST \
  --url https://api.openai.com/v1/audio/transcriptions \
  --header 'Authorization: Bearer OPENAI_API_KEY' \
  --header 'Content-Type: multipart/form-data' \
  --form file=@/percorso/del/tuo/file/audio.mp3 \
  --form model=whisper-1

Dopo aver eseguito il comando sopra, si riceverà una risposta formattata in JSON contenente le informazioni testuali trascritte.

Ad esempio:

{
  "text": "Immagina l'idea più folle che tu abbia mai avuto e sei curioso su come potrebbe scalare fino a qualcosa che è 100, 1.000 volte più grande..."
}

4.2. Formati e Dimensioni dei File Supportati

Questa API supporta vari formati di file audio comuni per soddisfare diverse esigenze in scenari diversi. I formati di file supportati includono, ma non sono limitati a, mp3, mp4, mpeg, mpga, m4a, wav, webm, ecc. Questo consente agli utenti di elaborare facilmente file audio da varie fonti.

Per quanto riguarda le dimensioni dei file, l'attuale API ha un limite di non oltre 25MB. Ciò significa che se il file audio è più grande di 25MB, sarà necessario suddividerlo in segmenti più piccoli di 25MB o utilizzare un formato di compressione più efficiente. Ad esempio, i formati mp3 e opus di solito forniscono una compressione efficiente, riducendo le dimensioni del file senza sacrificare troppa qualità audio.

Se ti trovi di fronte a un file più grande di 25MB, puoi considerare di utilizzare la libreria PyDub in Python per segmentare il tuo audio:

from pydub import AudioSegment

audio_file = AudioSegment.from_file("il_tuo_file_audio_grande.mp3")

intervallo = 10 * 60 * 1000  # 10 minuti

segmenti = make_chunks(audio_file, intervallo)

for i, segmento in enumerate(segmenti):
    nome_segmento = f"segmento_audio{i}.mp3"
    segmento.export(nome_segmento, format="mp3")

Nel codice sopra, la funzione make_chunks segmenterà un file audio grande in segmenti audio multipli con un intervallo di 10 minuti. Questi segmenti rientrano tutti nel limite di dimensioni del file richiesto dall'API e possono essere caricati separatamente nell'API di OpenAI per la trascrizione.

Si prega di notare che sebbene PyDub ci fornisca un modo semplice per gestire i file audio, è comunque consigliabile prestare particolare attenzione alla sicurezza e alla stabilità di qualsiasi software di terze parti quando lo si utilizza. OpenAI non fornisce alcuna garanzia per il software di terze parti.