Bibliothèques pour la détection d'activité vocale (pas la reconnaissance vocale)


18

Pour faire suite à ma question précédente, je me demandais s'il existait des bibliothèques de détection de la parole. Par détection de la parole, je veux dire passer dans un tampon audio et récupérer un index d'où la parole commence et s'arrête. Donc, si j'ai 10 secondes d'échantillonnage audio à 44 kHz, je m'attendrais à un tableau de nombres tels que:

44000
88000
123000
190334
...

Cela indiquerait par exemple que la parole commence une seconde puis se termine aux deux secondes, etc.

Ce que je ne recherche pas, c'est la reconnaissance vocale qui écrit du texte à partir de la parole. C'est malheureusement ce que je vois beaucoup quand je google «détection de la parole».

Ce serait génial si la bibliothèque était en C, C ++ ou même Objective-C car j'écris une application pour l'iPhone.

Merci!


1
Vous pouvez trouver votre réponse dans l'une de ces réponses: dsp.stackexchange.com/questions/912/…
Geerten

1
C'est très similaire, sauf le chant au lieu de la parole: dsp.stackexchange.com/q/2367/29
endolith

1
Également pertinent: dsp.stackexchange.com/a/1543/29 "détection d'activité vocale"
endolith

1
Vous devriez examiner la détection de début / décalage. C'est un domaine actif avec de nombreuses applications dans la musique, la parole et le traitement du signal radar.
CyberMen

Réponses:


13

Dans ma réponse à votre question, j'avais mentionné que la détection d'activité vocale est une fonctionnalité standard pour les codecs comme G.729 et autres.

Vous devez rechercher des encodeurs et décodeurs de référence pour les algorithmes qui appliquent cela.

Un tel exemple est - http://www.voiceage.com/openinit_g729.php

Une autre source possible est le codec Speex. Qui implémente VAD

BTW: Vous devriez google "Détection d'activité vocale" ou "Talk Spurt" plutôt que "Détection de la parole".


6

Il existe des implémentations open source dans les projets Sphinx et Freeswitch. Je pense que ce sont tous des détecteurs à base d'énergie qui n'auront pas besoin de modèle.

Sphinx 4 (Java mais il devrait être facile de porter en C / C ++)

PocketSphinx

Freeswitch

Réponse tirée de la question Stackoverflow .


4

La détection d'activité vocale à l'aide du seuil adaptatif est très facile et pratique à mettre en œuvre sur n'importe quelle plate-forme

Ici, vous pouvez avoir un algorithme basé sur l'énergie adaptative

Petit ajout à l'algorithme ci-dessus lorsque vous calculez pour la toute première fois, prenez la moyenne d'énergie et marquez comme Emin

dans ce cadre, le cadre que vous passez est divisé en sous-cadres et vous pouvez ensuite examiner chaque sous-cadre pour son activité

vous pouvez surmonter d'autres problèmes avec des cadres qui se chevauchent


J'essaie d'implémenter la méthode dans le document, mais je me perds lorsque Min_E est nul en raison de la suppression du bruit. Dans ce cas, le Thresh_E serait -INF de l'équation. Même en prenant log1p (Min_E), le Thresh_E serait nul de telle sorte qu'il est très facile de classer incorrectement les trames vocales en raison de l'énergie non nulle. Toutes les bonnes suggestions ou suis-je mal compris? Équations: Thresh _ E Energy _ Pr imThresh * log (Min _ E)
Farley

3

Et LibVAD?

On dirait que ça fait exactement ce que vous décrivez.

Divulgation: je suis le développeur derrière LibVAD


Comment obtenir libVAD?
todd

En l'achetant. Cependant, le site Web ne divulgue pas de prix avant d'avoir rempli un formulaire.
Camille Goudeseune

2
Le lien va maintenant à un site de malware voulant que les visiteurs mettent à jour flash.
Steve Severance
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.