2016-04-05 2 views
0

Lorsqu'une personne parle loin d'un mobile, la voix enregistrée est faible. Lorsqu'une personne parle à proximité d'un téléphone portable, la voix enregistrée est élevée. Je veux est de jouer la voix humaine à volume égal, peu importe à quelle distance (pas infinie) il est du téléphone lorsque la voix est enregistrée.Comment amplifier la voix enregistrée à distance

Ce que j'ai déjà essayé:

  1. régler le volume en fonction de la dB, comme AVAudioPlayer Mais le problème est que le dB contient tous les sons de l'environnement. Donc, cela ne fonctionne que lorsque la voix humaine varie fortement. Puis j'ai pensé que je devrais trouver un moyen d'échantillonner l'intensité de la voix humaine dans les médias qui me conduit à la reconnaissance vocale. Mais c'est un énorme sujet. Je ne peux pas rétrécir les zones qui pourraient résoudre mes problèmes.

+0

Également à propos http://stackoverflow.com/questions/16475808/noise-cancellation-reduction-in-iphone-player –

Répondre

1

La voix enregistrée à distance souffre d'une corruption importante. Un problème est le bruit, un autre est l'écho. Pour l'amplifier, vous devez nettoyer la voix de l'écho et du bruit. Idéalement, vous devez le faire avec un meilleur microphone, mais si un seul microphone est disponible, vous devez appliquer le traitement du signal. Les algorithmes de traitement du signal qui vous intéressent sont:

  1. Annulation de bruit. Vous pouvez trouver de nombreux échantillons sur Google à partir de simples à très avancés
  2. Annulation d'écho. Encore une fois, vous pouvez trouver de nombreuses implémentations.

Il n'y a pas de bibliothèque prête à faire ce qui précède, vous devrez mettre en œuvre une grande partie vous-même, vous pouvez regarder le code de WebRTC qui a à la fois le bruit et l'annulation d'écho, comme décrit dans cette question:

Is it possible to reduce background noise while streaming audio on the iPhone?