IBM Cloud Docs
Utilizzo dei formati audio

Utilizzo dei formati audio

Il servizio IBM Watson® Text to Speech può restituire l'audio sintetizzato in diversi formati audio di ampia diffusione (o tipi MIME). Per informazioni su tutti i formati supportati, vedi Formati audio supportati.

Per utilizzare al meglio il servizio, devi comprendere la frequenza di campionamento dell'audio restituita dal servizio e come specificare una frequenza diversa, se ne hai bisogno. Per ulteriori informazioni, vedi Frequenza di campionamento. Il servizio restituisce sempre l'audio a canale singolo per tutti i formati.

Frequenza di campionamento

La frequenza di campionamento è il numero di campioni generati al secondo per l'audio. La frequenza di campionamento è misurata in Hertz (Hz) o kilohertz (kHz). Ad esempio, una frequenza di 16.000 campioni al secondo equivale a 16.000 Hz (o 16 kHz).

Internamente, il servizio sintetizza sempre l'audio con una frequenza di campionamento di 22.050 Hz. Per molti formati, il servizio restituisce anche l'audio con questa frequenza di campionamento. Per gli altri formati, il servizio restituisce l'audio con una frequenza di campionamento differente.

Per la maggior parte dei formati, puoi specificare una frequenza di campionamento differente per l'audio. Per i formati audio/alaw, audio/l16 e audio/mulaw è necessario specificare una frequenza di campionamento. Specifichi una frequenza di campionamento includendo il parametro rate={integer} con la specifica del formato audio. Per ulteriori informazioni, vedi Specifica di un formato audio.

Quando specifichi una frequenza di campionamento, il servizio ricampiona l'audio da 22.050 Hz alla frequenza specificata prima di restituire l'audio. Una frequenza di campionamento specificata deve essere compresa tra 8 kHz e 192 kHz. Alcuni formati audio limitano la frequenza a valori specifici; le descrizioni dei formati identificano tali limitazioni.

Determinazione della frequenza di campionamento

Il modo più affidabile per identificare la velocità di campionamento per qualsiasi audio restituito dal servizio consiste nell'estrarre le informazioni dal flusso audio stesso. Per determinare la frequenza, richiama il metodo /v1/synthesize con del testo semplice (ad esempio, "hello world") e specifica il formato e il codec che intendi utilizzare. Puoi anche ottenere la frequenza di campionamento salvando il flusso audio in un file e aprendolo in un lettore audio come uno di quelli elencati in Riproduzione di un file audio.

Formati audio supportati

La Tabella 1 elenca i formati audio in cui puoi richiedere l'audio sintetizzato. Per impostazione predefinita, il servizio restituisce l'audio nel formato Ogg con il codec Opus (audio/ogg;codecs=opus).

Il formato audio Ogg non è supportato dal browser Safari. Se si utilizza il servizio Text to Speech con il browser Safari, è necessario specificare un formato diverso in cui si desidera che il servizio restituisca l'audio. Per ulteriori informazioni, vedi Specifica di un formato audio.

Il servizio fornisce le seguenti informazioni per ciascun formato:

  • Frequenza di campionamento predefinita: mostra la frequenza di campionamento per l'audio nel formato indicato se non specifichi una frequenza alternativa.
  • Parametri obbligatori: indica i formati per cui devi specificare una frequenza di campionamento per l'audio restituito.
  • Parametri facoltativi: identifica i formati per cui puoi, facoltativamente, specificare una frequenza di campionamento o altre caratteristiche dell'audio restituito.

Come mostrato nella colonna Formati audio per i formati che accettano un parametro codecs, separi tutti i parametri della specifica del formato con un carattere punto e virgola (;). Per ulteriori informazioni sui diversi formati, vedi le sezioni che seguono la tabella.

Riepilogo dei formati audio supportati
Formati audio Frequenza di campionamento predefinita Parametri obbligatori Parametri facoltativi
audio/alaw Nessuno rate={integer} Nessuno
audio/basic 8000 Hz Nessuno Nessuno
audio/flac 22.050 Hz Nessuno rate={integer}
audio/l16 Nessuno rate={integer} endianness=big-endian
endianness=little-endian
audio/mp3
audio/mpeg
22.050 Hz Nessuno rate={integer}
audio/mulaw Nessuno rate={integer} Nessuno
audio/ogg
audio/ogg;codecs=vorbis
22.050 Hz Nessuno rate={integer}
audio/ogg;codecs=opus 48.000 Hz Nessuno rate={integer}
audio/wav 22.050 Hz Nessuno rate={integer}
audio/webm
audio/webm;codecs=opus
48.000 Hz Nessuno Nessuno
audio/webm;codecs=vorbis 22.050 Hz Nessuno rate={integer}

Formato audio/alaw

A-lawaudio/alaw) è un formato audio a canale singolo, con perdita di dati, codificato utilizzando dati u-law (o mu-law) simili ai formati audio/basic e audio/mulaw, sebbene l'algoritmo A-law produca caratteristiche di segnale diverse. È necessario specificare la frequenza di campionamento con questo formato. Ad esempio, specificare audio/alaw;rate=8000 per l'audio campionato a 8 kHz.

A causa della natura di streaming dell'audio restituito, l'audio A-law generato potrebbe non funzionare in tutti i lettori audio. In particolare, l'attributo numSamples nell'intestazione del flusso audio è impostato su 0 indipendentemente dalla lunghezza dell'audio.

Formato audio/basic

Audio di base è un formato audio con perdita di dati a canale singolo che viene codificato utilizzando dati u-law (o mu-law) a 8 bit campionati a 8 kHz. Questo formato fornisce un tipo di supporto con un minimo comune denominatore. L'audio in questo formato ha sempre una frequenza di campionamento di 8 kHz.

Per ulteriori informazioni, vedi

Formato audio/flac

FLAC (Free Lossless Audio Codec) (.flac) è un formato di codifica audio compresso senza perdita di dati. Puoi, facoltativamente, specificare una frequenza di campionamento diversa da quella predefinita di 22.050 Hz.

Formato audio/l16

PCM (Pulse-Code Modulation) lineare a 16 bit è un formato di dati audio non compresso (spesso .raw o .pcm). Con questo formato audio devi specificare la frequenza di campionamento. Ad esempio, specificare audio/l16;rate=16000 per l'audio campionato a 16 kHz.

Puoi, facoltativamente, specificare il tipo di architettura endian (endianness) per l'audio utilizzando il parametro endianness. Il tipo di architettura endian (endianness) indica in che modo vengono ordinati i byte di dati dall'architettura del computer sottostante.

  • Big-endian (endianness=big-endian) ordina i dati in base al bit più significativo.
  • Little-endian (endianness=little-endian) ordina i dati in base al bit meno significativo.

Ad esempio, specifica audio/l16;rate=16000;endianness=big-endian per ottenere un audio che viene campionato a 16 kHz e restituito in ordine big-endian. Se ometti il tipo di architettura endian (endianness), il valore predefinito è little-endian. (La specifica del tipo di architettura endian (endianness) è un problema solo per il formato audio/l16, che non include un'intestazione). Il tipo di architettura endian (endianness) non è un problema per gli altri formati).

Per ulteriori informazioni, consultare la Request for Comment(RFC)2586 dell'IETF.

Formati audio/mp3 e audio/mpeg

MP3 o MPEG (Motion Picture Experts Group) è un formato di compressione dati con perdita di dati (MP3 e MPEG si riferiscono allo stesso formato). È possibile specificare una frequenza di campionamento diversa dal valore predefinito. La frequenza di campionamento predefinita è di 22.050 Hz per le voci Enhanced Neural ed Expressive e di 24.000 Hz per le voci Natural.

Formato audio/mulaw

Audio mu-law (o u-law) a 8 bit è un formato audio con perdita di dati a canale singolo che viene codificato utilizzando dati mu-law a 8 bit. Con questo formato audio devi specificare la frequenza di campionamento. Ad esempio, specifica audio/mulaw;rate=16000 per l'audio campionato a 16 kHz.

Formato audio/ogg

Formato Ogg (.ogg) è un formato contenitore aperto e gratuito gestito da Xiph.org Foundation. Puoi specificare il parametro codecs con il formato per richiedere un flusso audio compresso con uno dei seguenti codec:

  • Il codec Opus specificando audio/ogg;codecs=opus. Puoi, facoltativamente, specificare una frequenza di campionamento diversa da quella predefinita di 48.000 Hz. Solo i seguenti valori sono frequenze di campionamento valide: 48000, 24000, 16000, 12000 o 8000. Se specifichi un valore diverso da uno di questi, il servizio restituisce un errore.

    A causa di una limitazione corrente, il servizio ignora una frequenza di campionamento valida. Il servizio restituisce sempre l'audio con una frequenza di campionamento di 48 kHz.

  • Il codec Vorbis specificando audio/ogg;codecs=vorbis o semplicemente audio/ogg. Puoi, facoltativamente, specificare una frequenza di campionamento diversa da quella predefinita di 22.050 Hz.

Entrambi i codec sono formati di compressione audio gratuiti, aperti e con perdita di dati. Opus è il codec preferito, ma secondo la specifica Ogg, il servizio restituisce l'audio in formato Vorbis se ometti il codec. Se ometti del tutto il formato audio, il servizio restituisce l'audio in formato Ogg con il codec Opus per impostazione predefinita.

Per ulteriori informazioni, vedi

Formato audio/wav

Waveform Audio File Format (WAV) (.wav) è un formato contenitore standard che viene spesso utilizzato per flussi di bit audio non compressi, ma che può contenere anche audio compresso. Puoi, facoltativamente, specificare una frequenza di campionamento diversa da quella predefinita di 22.050 Hz.

A causa della natura di streaming dell'audio restituito, l'audio WAV generato potrebbe non funzionare in tutti i lettori audio. In particolare, l'attributo numSamples nell'intestazione del flusso audio è impostato su 0 indipendentemente dalla lunghezza dell'audio.

Formato audio/webm

WebM (Web Media) (.webm) è un formato file multimediale aperto. Puoi specificare il parametro codecs con il formato per richiedere un flusso audio compresso con uno dei seguenti codec:

  • Il codec Opus specificando audio/webm;codecs=opus o semplicemente audio/webm. L'audio in questo formato ha sempre una frequenza di campionamento di 48 kHz.
  • Il codec Vorbis specificando audio/webm;codecs=vorbis. Puoi, facoltativamente, specificare una frequenza di campionamento diversa da quella predefinita di 22.050 Hz.

Entrambi i codec sono formati di compressione audio gratuiti, aperti e con perdita di dati. Opus è il codec preferito.

Per ulteriori informazioni, vedi

Specifica di un formato audio

Per impostazione predefinita, il servizio restituisce l'audio in formato audio/ogg;codecs=opus. Puoi specificare un formato audio differente con l'interfaccia WebSocket o HTTP.

  • Con i metodi HTTP GET e POST /v1/synthesize, puoi specificare un formato utilizzando l'intestazione della richiesta Accept o il parametro di query accept.
    • Se utilizzi l'intestazione della richiesta Accept, specifichi il formato e qualsiasi parametro aggiuntivo come mostrato nel seguente esempio. L'esempio specifica il formato audio/l16 e una frequenza di campionamento di 16.000 Hz.

      audio/l16;rate=16000
      
    • Se utilizzi il parametro di query accept, devi codificare in URL il formato e qualsiasi parametro aggiuntivo come mostrato nel seguente esempio. L'esempio specifica lo stesso formato e la stessa frequenza di campionamento dell'esempio precedente.

      audio%2Fl16%3Brate%3D16000
      
    Per ricevere l'audio nel formato predefinito, ometti sia l'intestazione che il parametro di query. Per ulteriori informazioni, vedi Sintetizzazione del testo in audio.
  • Con il metodo /v1/synthesize WebSocket, devi specificare un formato utilizzando il parametro accept richiesto del messaggio di testo che passi per avviare la sintesi. Per ricevere l'audio nel formato predefinito, specifica il valore */* per il parametro. Per ulteriori informazioni, vedi Invia il testo di input.

Riproduzione di un file audio

Per riprodurre un file audio generato dal servizio, utilizza uno dei seguenti strumenti:

  • Un browser web come Google Chrome™, Firefox® o Microsoft® Internet Explorer®
  • Un lettore audio come Audacity® audacityteam.org) o FFmpeg ffmpeg.org)