Determinare quanto l'audio sia simile al linguaggio umano


12

Mentre cercavo una risposta a questo problema, ho trovato questa bacheca, quindi ho deciso di inviare questa mia domanda da Stack Overflow.


Sto cercando un metodo per determinare la somiglianza tra un segmento audio e una voce umana, che è espresso numericamente.

Ho cercato un po ', ma quello che ho trovato finora (dettagliato di seguito) non si adatta davvero a ciò di cui ho bisogno:

  • Un metodo consiste nell'utilizzare il software di riconoscimento vocale per ottenere parole da un segmento audio. Tuttavia, questo metodo non è in grado di escogitare quanto l'audio "simile" al linguaggio umano; spesso può dire se ci sono o meno parole nell'audio, ma se non ci sono parole definite, non è in grado di dire che l'audio deve avere tali parole.
    Esempi: CMU Sphinx , Dragonfly , SHoUT

  • Il metodo più promettente viene definito Voice Activity Detection (VAD). Tuttavia, ciò tende ad avere gli stessi problemi: gli algoritmi / i programmi che utilizzano VAD tendono semplicemente a restituire se la soglia di attività è stata raggiunta o meno e nessun valore di "somiglianza" prima o dopo tale soglia. In alternativa, molti cercano solo volume, non somiglianza con il linguaggio umano.
    Esempi: Speex , Listener , FreeSWITCH


Qualche idea?


1
Dalla tua domanda non è chiaro se il tuo problema è A / prendi una registrazione audio e dice se contiene un discorso umano o meno (esempio di applicazione: rileva e rimuovi discorsi DJ da una registrazione di un programma radiofonico); o B / accetta l'input vocale e dice quanto suona simile a un segmento audio di riferimento. Nel caso in cui sia B, su quali criteri vuoi misurare la somiglianza. Sul contorno della melodia? (es: abbinare una voce cantata a una canzone). Sui ritmi e le lezioni di gruppo? (es: abbinare beatboxing / onomatopea a un loop di batteria). Sul timbro? (abbinando una voce all'effetto sonoro). Per favore dicci la tua domanda.
Pichenettes,

Ci dispiace, il mio problema è quello che hai descritto in A. Vorrei determinare se un segmento audio è o meno un linguaggio umano.
Jeff Gortmaker,

1
Ho lavorato su un problema correlato: cercare di determinare quando i suoni del russare / della respirazione sono stati "inquinati" dal linguaggio o dalla musica. È frustrantemente difficile da fare con qualsiasi affidabilità e senza ricorrere ad algoritmi di riconoscimento vocale "avanzati" (se, in effetti, funzionerebbero persino). La mia unica osservazione sarebbe che il discorso tende ad avere un ritmo irregolare, mentre la musica è (di solito) regolare. Questa e forse la "planarità spettrale" merita di essere verificata (sto ancora valutando i suoi meriti per i miei scopi).
Daniel R Hicks,

(Un dettaglio in più: trovo che la deviazione standard normalizzata della planarità spettrale calcolata dalla FFT dell'audio sembra riflettere qualcosa di qualità audio.)
Daniel R Hicks,

Risposte:


6

Questo tipo di problema viene generalmente risolto utilizzando tecniche di apprendimento automatico.

Suddividere il segnale in una sequenza di frame da 20ms o 50ms. Estrai le funzioni su ciascun fotogramma. Le MFCC sono generalmente buone per questo tipo di applicazione, sebbene ci siano caratteristiche più specifiche per il rilevamento vocale (energia di modulazione a 4 Hz - che è approssimativamente la frequenza con cui le persone parlano; velocità di attraversamento zero).

Quindi, usando un set di addestramento audio che hai etichettato manualmente come parlato / non vocale, addestra un classificatore (modelli di miscele gaussiane, SVM ...) sulle caratteristiche dei frame.

Ciò ti consentirà di classificare i frame senza etichetta in classi vocali / non vocali. L'ultimo passaggio consiste nel livellare le decisioni (è probabile che un frame classificato come non parlato circondato da centinaia di frame vocali sia un errore di classificazione), ad esempio utilizzando HMM o solo un filtro mediano.

Alcuni riferimenti:

Classificazione vocale / musicale affidabile nei documenti audio (Pinquier e altri) Discriminazione vocale / musicale per applicazioni multimediali (El-Maleh e altri) Un confronto tra le funzionalità per la discriminazione vocale / musicale (Carey e altri)

Nota che le caratteristiche e le tecniche di classificazione che descrivono sono rilevanti anche per il problema di 1 classe di rilevazione del parlato (invece di discriminare il discorso rispetto a qualcos'altro). In questo caso, è possibile utilizzare tecniche di modellazione di classe 1 come SVM di classe 1 o semplicemente prendere il punteggio di probabilità da un GMM addestrato sui dati del parlato come misura di "discordanza".

Se, d'altra parte, il tuo problema è davvero il discorso discriminante rispetto a qualcos'altro (ad esempio la musica), potresti anche usare degli approcci senza supervisione che sono focalizzati sulla rilevazione dei confini tra contenuti audio simili - piuttosto che identificare questo contenuto stesso.


Grazie, questo aiuta molto! Qual è il vantaggio di abbattere il segnale in piccole finestre? Poiché l'output che sto cercando è un valore numerico che descrive l'intero segmento audio, sarebbe meglio estrarre funzionalità per l'intero segnale e non solo per finestre specifiche?
Jeff Gortmaker,

Il calcolo delle caratteristiche (in particolare quelle spettrali o cefaliche) su finestre molto lunghe farebbe la media o annullerebbe alcune delle proprietà che fanno risaltare il parlato. Puoi verificarlo tu stesso mescolando insieme molti brevi frammenti di discorso: sarà difficile riconoscere il risultato come discorso. È quindi meglio eseguire la classificazione su piccoli segmenti; e, nel tuo caso, aggregare i punteggi (ad esempio calcolare la media del punteggio di probabilità fornito da un GMM; oppure calcolare la% di frame classificati come parlato da un classificatore binario).
Pichenettes,

Per essere più precisi, tieni presente che la dimensione temporale è "collassata" quando guardi uno spettro. Ad esempio, lo spettro di potenza di un tono di 500 Hz seguito nel tempo da un tono di 1kHz è simile allo spettro di potenza di quei due toni suonati contemporaneamente; quindi lo spettro di potenza, su una lunga finestra, di un segnale che cambia molto potrebbe non sembrare molto rappresentativo del contenuto del segnale.
Pichenettes,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.