IBM Cloud Docs
Formati audio supportati

Formati audio supportati

Il servizio IBM Watson® Speech to Text può estrarre il discorso dall'audio in molti formati. Le sezioni successive di questo argomento possono aiutarvi a ottenere il massimo dall'uso del servizio. Se non si ha familiarità con l'elaborazione audio, iniziare con Terminologia e caratteristiche audio per informazioni sui concetti audio.

Formati audio

La Tabella 1 fornisce un riepilogo dei formati audio supportati dal servizio.

  • Il formato audio identifica ogni formato supportato con le sue Content-Type specifiche.
  • Compressione indica il supporto del formato per la compressione. Utilizzando un formato che supporta la compressione, puoi ridurre la dimensione del tuo audio per massimizzare la quantità di dati che puoi passare al servizio. Ma è necessario considerare i possibili effetti della compressione sulla qualità dell'audio. Per ulteriori informazioni, vedi Limiti e compressione dei dati.
  • Specifica tipo di contenuto indica se devi utilizzare l'intestazione Content-Type o il parametro equivalente per specificare il formato (tipo MIME) dell'audio che invii al servizio. Per ulteriori informazioni, vedi Specifica di un formato audio.

Le colonne finali identificano ulteriori Parametri obbligatori e Parametri facoltativi per ogni formato. Le seguenti sezioni forniscono ulteriori informazioni su questi parametri.

Riepilogo dei formati audio supportati
Formato audio Compressione Specifica del tipo di contenuto Parametri obbligatori Parametri facoltativi
audio/alaw Con perdita Obbligatorio rate={integer} Nessuno
audio/basic Con perdita Obbligatorio Nessuno Nessuno
audio/flac Senza perdita Facoltativo Nessuno Nessuno
audio/g729 Con perdita Facoltativo Nessuno Nessuno
audio/l16 Nessuno Obbligatorio rate={integer} channels={integer}
endianness=big-endian
endianness=little-endian
audio/mp3
audio/mpeg
Con perdita Facoltativo Nessuno Nessuno
audio/mulaw Con perdita Obbligatorio rate={integer} Nessuno
audio/ogg Con perdita Facoltativo Nessuno codecs=opus
codecs=vorbis
audio/wav Nessuno, lossless o lossy Facoltativo Nessuno Nessuno
audio/webm Con perdita Facoltativo Nessuno codecs=opus
codecs=vorbis

Formato audio/alaw

A-law (audio/alaw) è un formato audio con perdita a canale singolo. Utilizza un algoritmo simile all'algoritmo u-law applicato dai formati audio/basic e audio/mulaw, sebbene l'algoritmo A-law produca caratteristiche di segnale diverse. Quando utilizzi questo formato, il servizio richiede un parametro aggiuntivo sulla specifica del formato.

Parametro Descrizione
rate
Richiesto
Un numero intero che specifica la frequenza di campionamento a cui viene
  catturato l'audio. Ad esempio, specificare il seguente parametro per i dati audio acquisiti a 8 kHz:  \n   \n '`audio/alaw;rate=8000` |

Formato audio/basic

Audio di base (audio/basic) è un formato audio con perdita a canale singolo che viene codificato utilizzando dati u-law (o mu-law) a 8 bit campionati a 8 kHz. Questo formato fornisce un minimo denominatore comune per indicare il tipo di supporto audio. Il servizio supporta l'utilizzo di file in formato audio/basic solo con i modelli a banda stretta.

Per ulteriori informazioni, consultare la Request for Comment(RFC)2046 della Internet Engineering Task Force (IETF) e iana.org/assignments/media-types/audio/basic.

Formato audio/flac

FLAC (Free Lossless Audio Codec ) (audio/flac) è un formato audio senza perdita.

Formato audio/g729

G.729 (audio/g729) è un formato audio con perdita che supporta dati codificati a 8 kHz. Il servizio supporta solo l'appendice D di G.729, non l'appendice J. Il servizio supporta l'utilizzo di file in formato audio/g729 solo con i modelli a banda stretta.

Formato audio/l16

PCM (Pulse-Code Modulation) lineare a 16 bit (audio/l16) è un formato audio non compresso. Utilizza questo formato per passare un file PCM raw. L'audio lineare PCM può anche essere trasportato all'interno di un file WAV (Waveform Audio File Format) contenitore. Quando utilizzi il formato audio/l16, il servizio accetta ulteriori parametri obbligatori e facoltativi sulla specifica del formato.

Parametro Descrizione
rate
Richiesto
Un numero intero che specifica la frequenza di campionamento a cui viene
  catturato l'audio. Ad esempio, specificare il seguente parametro per i dati audio acquisiti a 16 kHz:  \n   \n '`audio/l16;rate=16000` |

| channels \n Opzionale | Per impostazione predefinita, il servizio considera l'audio come se avesse un singolo canale. Se l'audio ha più di un canale, devi specificare un numero intero che identifica il numero di canali. Ad esempio, specificare il seguente parametro per i dati audio a due canali acquisiti a 16 kHz: \n \n 'audio/l16;rate=16000;channels=2 ' \n \n Il servizio accetta un massimo di 16 canali. Esegue il downmix dell'audio su un solo canale durante la transcodifica. | | endianness \n Opzionale | Per impostazione predefinita, il servizio rileva automaticamente la proprietà endian dell'audio in entrata. Tuttavia, il rilevamento automatico può a volte non riuscire e rilasciare la connessione per un audio breve in formato audio/l16. La specifica della proprietà endian disabilita il rilevamento automatico. Specifica big-endian o little-endian. Ad esempio, specificare il seguente parametro per i dati audio acquisiti a 16 kHz in formato little-endian: \n \n 'audio/l16;rate=16000;endianness=little-endian ' \n \n La sezione 5.1 della Request for Comment(RFC)2045 specifica il formato big-endian per i dati 'audio/l16, ma molti usano il formato little-endian. |

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

Formati audio/mp3 e audio/mpeg

MP3 (audio/mp3) o MPEG (Motion Picture Experts Group) (audio/mpeg) è un formato audio con perdita. MP3 e MPEG si riferiscono allo stesso formato).

Formato audio/mulaw

Mu-law (audio/mulaw) è un formato audio con perdita a canale singolo. I dati vengono codificati utilizzando l'algoritmo u-law (o mu-law). Il formato audio/basic è un formato equivalente che viene sempre campionato a 8 kHz. Quando utilizzi questo formato, il servizio richiede un parametro aggiuntivo sulla specifica del formato.

Parametro Descrizione
rate
Richiesto
Un numero intero che specifica la frequenza di campionamento a cui viene
  catturato l'audio. Ad esempio, specificare il seguente parametro per i dati audio acquisiti a 8 kHz:  \n   \n '`audio/mulaw;rate=8000` |

Formato audio/ogg

Ogg (audio/ogg) è un formato contenitore aperto gestito dalla Xiph.org Foundation xiph.org/ogg). Puoi utilizzare flussi audio compressi con i seguenti codec con perdita:

  • Opus (audio/ogg;codecs=opus). Per ulteriori informazioni, vedere opus-codec.org.
  • Vorbis (audio/ogg;codecs=vorbis). Per ulteriori informazioni, vedere xiph.org/vorbis.

OGG Opus è il codec preferito. È il logico successore di OGG Vorbis grazie alla sua bassa latenza, all'elevata qualità audio e alle dimensioni ridotte. È standardizzato dall'Internet Engineering Task Force (IETF) come Request for Comment(RFC)6716.

Se si omette il codec dal tipo di contenuto, il servizio lo rileva automaticamente dall'audio in ingresso.

Formato audio/wav

WAV (Waveform Audio File Format) (audio/wav) è un formato contenitore che viene spesso utilizzato per flussi audio non compressi, ma può contenere anche audio compresso. Il servizio supporta l'audio WAV che utilizza qualsiasi codifica. Accetta l'audio WAV con un massimo di nove canali (a causa di una limitazione FFmpeg).

Per ulteriori informazioni sulla riduzione della dimensione dell'audio WAV convertendolo nel codec Opus, vedi Conversione in audio/ogg con il codec Opus.

Formato audio/webm

Web Media (WebM) (audio/webm) è un formato contenitore aperto gestito dal progetto WebMwebmproject.org). Puoi utilizzare flussi audio compressi con i seguenti codec con perdita:

  • Opus (audio/webm;codecs=opus). Per ulteriori informazioni, vedere opus-codec.org.
  • Vorbis (audio/webm;codecs=vorbis). Per ulteriori informazioni, vedere xiph.org/vorbis.

Se ometti il codec, il servizio lo rileva automaticamente dall'audio di input.

Per il codice JavaScript che mostra come catturare l'audio da un microfono in un browser Chrome e codificarlo in un flusso di dati WebM, vedere jsbin.com/hedujihuqo/edit?js,console. Il codice non inoltra l'audio catturato al servizio.

Specifica di un formato audio

Si utilizza l'intestazione della richiesta " Content-Type o un parametro equivalente per specificare il formato (tipo MIME) dell'audio inviato al servizio. Puoi specificare il formato audio per qualsiasi richiesta, ma non è sempre necessario:

  • Per la maggior parte dei formati, il tipo di contenuto è facoltativo. Puoi omettere il tipo di contenuto o specificare application/octet-stream affinché il servizio rilevi automaticamente il formato.
  • Per altri formati, il tipo di contenuto è richiesto. Questi formati non forniscono le informazioni, come la frequenza di campionamento, di cui il servizio ha bisogno per rilevare automaticamente il loro formato. È necessario specificare un tipo di contenuto per i formati audio/alaw, audio/basic, audio/l16 e audio/mulaw.

Per ulteriori informazioni sui formati che richiedono una specifica del tipo di contenuto, vedere la Tabella 1 in Formati audio. La colonna Specifica del tipo di contenuto della tabella indica se è necessario specificare il tipo di contenuto.

Per esempi di come specificare un tipo di contenuto con ciascuna delle interfacce del servizio, vedere Richiesta di riconoscimento vocale. Tutti gli esempi in questo argomento specificano un tipo di contenuto.

Quando si utilizza il comando 'curl per effettuare una richiesta di riconoscimento vocale con le interfacce HTTP, è necessario specificare il formato audio con l'intestazione 'Content-Type, specificare '"Content-Type: application/octet-stream" o specificare solo '"Content-Type:". Se ometti completamente l'intestazione, curl utilizza il valore predefinito application/x-www-form-urlencoded.

Limiti e compressione dei dati

Il servizio accetta un massimo di 100 MB di dati audio per la trascrizione con una richiesta HTTP o WebSocket sincrona e 1 GB di dati audio con una richiesta HTTP asincrona. Quando si riconoscono flussi audio continui di lunga durata o file audio di grandi dimensioni, è necessario considerare e tenere conto di questi limiti di dati.

Un modo per massimizzare la quantità di dati audio che è possibile trasmettere con una richiesta di riconoscimento vocale è quello di utilizzare un formato che offra la compressione. Esistono due tipi fondamentali di compressione: lossy e lossless. Il formato audio e l'algoritmo di compressione scelti possono avere un impatto diretto sulla precisione del riconoscimento vocale.

I formati audio che utilizzano la compressione lossy riducono significativamente le dimensioni del flusso audio. Tuttavia, una compressione eccessiva dell'audio può comportare una minore precisione di trascrizione. La differenza non si sente, ma il servizio è molto più sensibile a questa perdita di dati.

Confronto tra dimensioni audio approssimative

Considera la dimensione approssimativa del flusso di dati che risulta da 2 ore di trasmissione vocale continua campionata a 16 kHz e a 16 bit per ogni campione:

  • Se i dati sono codificati con il formato audio/wav, il flusso di due ore ha una dimensione di 230 MB, ben oltre il limite di 100 MB del servizio.
  • Se i dati sono codificati nel formato audio/ogg, il flusso di due ore ha una dimensione di soli 23 MB, ben al di sotto del limite del servizio.

La seguente tabella approssima la durata massima dell'audio che può essere inviato per il riconoscimento vocale con una richiesta HTTP sincrona o WebSocket in diversi formati. La durata considera il limite del servizio di 100 MB. I valori effettivi possono variare in base alla complessità dell'audio e alla velocità di compressione raggiunta.

Durata massima dell'audio in diversi formati
Formato audio Durata massima dell'audio (approssimativa)
audio/wav 55 minuti
audio/flac 1 ora 40 minuti
audio/mp3 3 ore 20 minuti
audio/ogg 8 ore 40 minuti

Durante i test per confrontare i diversi formati audio, IBM® ha stabilito che i formati WAV e FLAC hanno fornito il miglior tasso di errore di parola (WER). Questi formati possono servire come base per l'accuratezza della trascrizione perché mantengono l'audio intatto senza perdita di dati. Il formato Ogg con la codifica Opus ha mostrato un leggero degrado del 2% di WER rispetto alla linea di base. Il formato MP3 ha fornito i risultati peggiori, con un degrado del 10% del WER rispetto alla linea di base.

I formati audio/ogg;codecs=opus e audio/webm;codecs=opus sono generalmente equivalenti e le loro dimensioni sono quasi identiche. Utilizzano internamente lo stesso codec; solo il formato contenitore è diverso.

Massimizzare l'accuratezza della trascrizione

Quando si sceglie un formato audio e un algoritmo di compressione, considerare le seguenti raccomandazioni per massimizzare l'accuratezza della trascrizione:

  • Utilizzare un formato audio non compresso e senza perdite. Se la durata dell'audio è inferiore a 55 minuti (meno di 100 MB), si consiglia di utilizzare il formato audio/wav. Sebbene il formato WAV possa contenere solo 55 minuti di audio, spesso è sufficiente per la maggior parte delle applicazioni di trascrizione, come le chiamate di assistenza clienti. E l'audio WAV non compresso può produrre una trascrizione più accurata.
  • Utilizzare l'interfaccia HTTP asincrona. Se si sceglie di utilizzare il formato WAV ma l'audio supera il limite di 100 MB, l'interfaccia asincrona consente di inviare fino a 1 GB di dati.
  • Utilizzare un formato audio compresso ma senza perdite. Se dovete comprimere il vostro file audio, usate il formato audio/flac, che impiega una compressione senza perdite. La compressione lossless riduce le dimensioni dell'audio, ma ne mantiene la qualità. Il formato FLAC è un buon candidato per massimizzare l'accuratezza della trascrizione.
  • Utilizzare la compressione con perdita come ultima risorsa. Se avete bisogno di una compressione ancora maggiore, utilizzate il formato audio/ogg con il codec Opus. Sebbene il formato Ogg utilizzi una compressione con perdita, la combinazione del formato Ogg con il codec Opus ha mostrato il minor degrado nella precisione del parlato tra gli algoritmi di compressione con perdita.

L'uso di altri formati con livelli di compressione maggiori può compromettere l'accuratezza della trascrizione. Sperimentate il servizio per determinare il formato migliore per il vostro audio e la vostra applicazione. Per altri modi di migliorare il riconoscimento vocale, vedere Suggerimenti per migliorare il riconoscimento vocale.

Conversione audio

Puoi utilizzare vari strumenti per convertire l'audio in un formato diverso. Gli strumenti possono essere utili quando l'audio è in un formato non supportato dal servizio o in un formato non compresso o senza perdita. In quest'ultimo caso, puoi convertire l'audio in un formato con perdita per ridurne le dimensioni.

Sono disponibili i seguenti strumenti gratuiti per convertire il tuo audio da un formato all'altro:

Questi strumenti offrono un supporto multipiattaforma per più formati audio. Inoltre, puoi utilizzare molti degli strumenti per riprodurre l'audio. Non utilizzare gli strumenti per violare le leggi applicabili sul copyright.

Conversione in audio/ogg con il codec Opus

Gli opus-tools includono tre utility a riga di comando per lavorare con l'audio Ogg nel codec Opus:

  • L'utilità opusenc codifica l'audio da WAV, FLAC e altri formati in Ogg con il codec Opus. La pagina mostra come comprimere i flussi audio. La compressione è utile per passare l'audio in tempo reale al servizio.
  • L'utilità opusdec decodifica l'audio del codec Opus in file WAV PCM non compressi.
  • L'utilità opusinfo fornisce informazioni e controlli sulla validità dei file Opus.

Molti utenti inviano file WAV per il riconoscimento vocale. Con il limite di dati di 100 MB del servizio per le richieste WebSocket e HTTP sincrone, il formato WAV riduce la quantità di audio che può essere riconosciuto con una singola richiesta. Utilizzando il comando opusenc per convertire l'audio nel formato audio/ogg:codecs=opus preferito puoi aumentare notevolmente la quantità di audio che puoi inviare con una richiesta di riconoscimento.

Ad esempio, considera un file WAV (input.wav) a banda larga (16 kHz) non compresso che utilizza 16 bit per campione per una velocità di bit di 256 kbps. Il seguente comando converte l'audio in un file (output.opus) che utilizza il codec Opus:

opusenc input.wav output.opus

La conversione comprime l'audio di un fattore quattro e produce un file di output con una velocità di bit di 64 kbps. Tuttavia, secondo le Impostazioni consigliate di Opus, si può tranquillamente ridurre la velocità di trasmissione a 24 kbps e mantenere una banda completa per l'audio del parlato. Questa riduzione comprime l'audio di un fattore 10. Il seguente comando utilizza l'opzione --bitrate per produrre un file di output con una velocità di bit di 24 kbps:

opusenc --bitrate 24 input.wav output.opus

La compressione con il programma di utilità opusenc è veloce. La compressione avviene a una velocità circa 100 volte più veloce del tempo reale. Al termine, il comando scrive l'output sulla console che fornisce dettagli completi relativi al suo tempo di esecuzione e ai dati audio risultanti.

Trascrizione della voce da file video

Non puoi trascrivere la voce da un file multimediale che contiene sia audio che video. Il servizio accetta solo dati audio per il riconoscimento vocale.

Per trascrivere la voce da un file multimediale che contiene audio e video, devi separare i dati audio da quelli video. Puoi utilizzare il programma di utilità FFmpeg per separare l'audio dalla sorgente video. Per ulteriori informazioni, vedere ffmpeg.org

Suggerimenti per migliorare il riconoscimento vocale

I seguenti suggerimenti possono aiutarti a migliorare la qualità del riconoscimento vocale:

  • Il modo in cui registri l'audio può fare una grande differenza nei risultati del servizio. Il riconoscimento vocale può essere molto sensibile alla qualità dell'audio di input. Per ottenere la massima accuratezza, assicurati che la qualità dell'audio di input sia la migliore possibile.

    • Utilizza un microfono orientato alla voce diretta (ad esempio quello degli auricolari) quando possibile e regola le impostazioni del microfono secondo necessità. Il servizio funziona al meglio quando vengono utilizzati microfoni professionali per catturare l'audio.
    • Evita di utilizzare il microfono incorporato di un sistema. I microfoni che sono in genere installati su dispositivi mobili e tablet sono spesso inadeguati.
    • Assicurati che i parlanti siano vicini ai microfoni. L'accuratezza diminuisce quando un parlante si allontana da un microfono. Ad esempio, a una distanza di 3 metri, il servizio non è in grado di produrre risultati adeguati.
  • Utilizza una frequenza di campionamento non superiore a 16 kHz (per i modelli a banda larga) o a 8 kHz (per i modelli a banda stretta) e utilizza 16 bit per ogni campione. Il servizio converte l'audio che è registrato a una frequenza di campionamento superiore al modello di destinazione (16 kHz o 8 kHz) alla frequenza del modello. Quindi frequenze più grandi non producono una maggiore accuratezza del riconoscimento, ma aumentano le dimensioni del flusso audio.

  • Codifica il tuo audio in un formato che offre la compressione dei dati. Codificando i tuoi dati in modo più efficiente, puoi inviare molto più audio senza superare il limite di 100 MB. Poiché la gamma dinamica della voce umana è più limitata rispetto, ad esempio, alla musica, il parlato può essere adattato a una velocità di trasmissione inferiore rispetto ad altri tipi di audio. Tuttavia, IBM® raccomanda di scegliere con attenzione il formato audio e l'algoritmo di compressione. Per ulteriori informazioni, vedere Massimizzare la precisione della trascrizione.

  • Il riconoscimento vocale è sensibile al rumore di fondo e alle sfumature della voce umana.

    • I rumori provenienti da motori, da dispositivi di lavoro, dalla strada e da conversazioni di fondo possono ridurre in modo significativo l'accuratezza del riconoscimento.
    • Anche gli accenti regionali e le differenze di pronuncia possono ridurre l'accuratezza.

    Se il tuo audio ha queste caratteristiche, prendi in considerazione l'utilizzo della personalizzazione del modello acustico per migliorare l'accuratezza del riconoscimento vocale. Per ulteriori informazioni, vedi Informazioni sulla personalizzazione.

  • Per saperne di più sulle caratteristiche del vostro audio, prendete in considerazione l'utilizzo di metriche audio con la vostra richiesta di riconoscimento vocale. Se si è esperti di elaborazione del segnale audio, le metriche possono fornire informazioni significative e dettagliate sulle caratteristiche dell'audio. Per ulteriori informazioni, vedi Metriche audio.