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.
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
- Richiesta di commento(RFC)2046 della Internet Engineering Task Force (IETF)
- iana.org/assignments/media-types/audio/basic
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
o8000
. 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 semplicementeaudio/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 semplicementeaudio/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
ePOST /v1/synthesize
, puoi specificare un formato utilizzando l'intestazione della richiestaAccept
o il parametro di queryaccept
.-
Se utilizzi l'intestazione della richiesta
Accept
, specifichi il formato e qualsiasi parametro aggiuntivo come mostrato nel seguente esempio. L'esempio specifica il formatoaudio/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
-
- Con il metodo
/v1/synthesize
WebSocket, devi specificare un formato utilizzando il parametroaccept
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)