2017-07-19 5 views
0

J'utilise pyaudio et pocketsphinx pour écouter le micro sur mon ordinateur et traduire ce que je dis. Ce que je voulais savoir, c'est s'il serait possible que le programme écoute comme il l'a été et après qu'il entende la phrase, traite-le en supprimant des parties du fichier wav temporaire créé par disons 75% s'il tombe en dessous d'un certain seuil? Donc par exemple, vous parlez une phrase et le programme attend que vous finissiez de parler, puis une fois qu'il détecte une longue pause, il arrête d'écouter et place les données du fichier wav dans une fonction qui supprime l'espace entre les mots de 75% procède à transmettre ce fichier wav raccourci à la bibliothèque pocketsphinx pour la reconnaissance vocale. J'ai entendu parler d'autres solutions utilisant numpy et scipy mais cette boucle nécessitait que l'utilisateur spécifie manuellement des segments de trim à l'intérieur du spectrogramme wav avec une souris. Je veux gérer cela automatiquement dans le code. Toute aide serait grandement appréciée!Comment couper les fichiers wav dans Python

Répondre

1

Les solutions numpy et scipy n'exigent pas d'interaction avec l'utilisateur tant qu'il n'y a pas d'interface graphique.

>>> from scipy.io.wavfile import read 
>>> a = read("adios.wav") 
>>> numpy.array(a[1],dtype=float) 
array([ 128., 128., 128., ..., 128., 128., 128.]) 

scipy.signal a de nombreuses fonctions de construction dans pour ce genre d'opérations.

Il y a déjà d'autres messages sur ce sujet:

Python: write a wav file into numpy float array

How to manipulate wav file data in Python?

What is the easiest way to read wav-files using Python [summary]?