Librerie per il rilevamento di attività vocali (non riconoscimento vocale)


18

Come seguito alla mia domanda precedente, mi chiedevo se esistessero librerie di rilevazione vocale. Per rilevamento vocale intendo passare un buffer audio e recuperare un indice di dove inizia e si interrompe il parlato. Quindi se avessi 10 secondi di campionamento audio a 44kHz, mi aspetterei una serie di numeri come:

44000
88000
123000
190334
...

Ciò indicherebbe ad esempio che il discorso inizia un secondo dopo e termina al secondo punto, ecc.

Quello che non sto cercando è il riconoscimento vocale che scrive il testo dalla parola parlata. Questo purtroppo è ciò che vedo molto quando google "rilevazione vocale".

Sarebbe bello se la libreria fosse in C, C ++ o anche Objective-C mentre sto scrivendo un'app per iPhone.

Grazie!


1
È possibile trovare la risposta in una di queste risposte: dsp.stackexchange.com/questions/912/…
Geerten,

1
Questo è molto simile, tranne che cantare al posto del discorso: dsp.stackexchange.com/q/2367/29
endolith

1
Rilevante anche: dsp.stackexchange.com/a/1543/29 "rilevamento attività vocale"
endolito

1
Si dovrebbe esaminare il rilevamento di insorgenza / offset. È un campo attivo con molte applicazioni nell'elaborazione del segnale musicale, vocale e radar.
CyberMen,

Risposte:


13

Nella mia risposta a questa tua domanda, avevo menzionato che il rilevamento delle attività vocali è una funzione standard per codec come G.729 e simili.

Dovresti cercare codificatori e decodificatori di riferimento per algoritmi che lo applicano.

Un esempio è: http://www.voiceage.com/openinit_g729.php

Un'altra possibile fonte è il codec Speex. Il che implementa VAD

A proposito: dovresti andare su Google "Voice Activity Detection" o "Talk Spurt" anziché "Speech Detection".


6

Ci sono implementazioni open source nei progetti Sphinx e Freeswitch. Penso che siano tutti rivelatori basati sull'energia che non avranno bisogno di alcun modello di tipo.

Sphinx 4 (Java ma dovrebbe essere facile da portare in C / C ++)

pocketsphinx

Freeswitch

Risposta presa dalla domanda StackOverflow .


4

Il rilevamento delle attività vocali tramite la soglia adattiva è molto semplice e pratico da implementare su qualsiasi piattaforma

Qui puoi avere un algoritmo basato su Energia adattiva

Una piccola aggiunta all'algoritmo sopra quando stai calcolando per la prima volta vai per prendere la media di energia e segna come Emin

in questo il frame che passi è diviso in sub-frame e inoltre puoi esaminare ogni sub-frame per la sua attività

puoi superare ulteriori problemi con i frame sovrapposti


Sto cercando di implementare il metodo nel documento ma mi perdo quando Min_E è zero a causa della soppressione del rumore. In tal caso, Thresh_E sarebbe -INF dall'equazione. Anche prendendo log1p (Min_E), Thresh_E sarebbe zero in modo che sia molto facile classificare erroneamente i frame espressi a causa di energia diversa da zero. Qualche buon suggerimento o lo fraintendo? Equazioni: Thresh _ E Energy _ Pr imThresh * log (Min _ E)
Farley

3

Che ne dici di LibVAD?

Sembra che faccia esattamente quello che stai descrivendo.

Divulgazione: sono lo sviluppatore dietro LibVAD


Come si ottiene libVAD?
todd

Acquistandolo. Tuttavia, il sito Web non rivela un prezzo fino a quando non compili un modulo.
Camille Goudeseune,

2
Il collegamento ora va a un sito di malware che desidera che i visitatori aggiornino Flash.
Steve Severance,
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.