Python - Trabajar con archivos de sonido

 
Vista:
sin imagen de perfil

Trabajar con archivos de sonido

Publicado por Visstar (1 intervención) el 04/02/2016 13:05:30
¡Muy buenas!

Quiero crear un projecto con la Raspberry, que consiste en un chatbot. He estado buscando mucha información al respeto, pero no consigo hacer demasiados progresos, básicamente porque no entiendo todo el funcionamiento del código. Por cierto, yo trabajo con Python (aún soy novato, pero tengo experiencia en programación y sobretodo muchas ganas).

De momento, ya tengo algo importante, que es el sintetizador de voz que uso, Espeak, el que incorpora Linux. He creado un proyecto que llama al programa y envia argumentos con la palabra que quiero que suene. Es un proyecto que necesita muchos arreglos, como por ejemplo reducir el tiempo de ejecución, gestionar el flujo de palabras..., pero de momento está bien para empezar.

La cuestión, es que ahora quiero que suceda lo contrario, que llame a un programa que grave mi voz, y que envie el archivo de sonido a un script de reconocimiento de voz dentro de python. Será tarea complicada después intentar enlazar las diferentes funciones y objetos, pero lo intentaré.

Por otro lado, he realizado pruebas para saber que el micro de mi webcam funciona, y también puedo reproducir sonidos sin ningún problema. También conozco los argumentos necesarios para que Alsa (drivers de Raspbian) pueda reproducir y grabar.

Para entender un poco mi proyecto explico mi primera idea:

Como funciona: recibe una orden de sonido, la realiza, y después me contesta con audio

1 --> entrada de voz (audio)
2 --> conversión speech-to-text
3 --> acción según el texto/orden
4 --> conversion text-to-speech (para darme feedback y saber que ha realizado la tarea)

El cuarto paso no me preocupa, pero si los anteriores como explicava al principio.

Ahora mismo, estoy investigando acerca de las librerías subprocess y Popen, que no se si me pueden ayudar en esto.

Ejemplo:

reproduccion = subprocess.call(['mplayer', '-ao', 'alsa', '-noconsolecontrols', url], shell=False)

Esta linea aparece en un archivo llamado speakpy.py (se encuentra muy facilmente), que me ha inspirado en mi punto de partida. Pero no se como funciona. Y las páginas oficiales lo explican de una forma tant técnica, que no me ayuda a entender como funciona.

Me gustaría saber como usar la función, y por ejemplo, si puedo llamar al programa arecord para que haga una grabación de audio, y yo pueda trabajar con él.

En general, prefiero trabajar así para poder entender todo lo que hago. Sólo pido orientación, no quiero que nadie me haga el proyecto.

Grácias de antemano, y espero poder trabajar en este proyecto!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder