Git es un sistema de control de versiones sumamente poderoso, ees una de las herramientas básicas que un buen programador debe usar, y para mi es sin lugar a dudas uno de los aspectos que hacen a un excelente programador.
Git es una herramienta que nos ayuda a tener un registro de las diferentes versiones de nuestro código. Pero además hace muy fácil y transparente compartir nuestros proyectos y de paso respaldarlos.Y en especial con servicios como GitHub ha hecho de programar y compartir algo universal. En este tutorial vamos a ver como usar git en conjunto como GitHub
Python es un lenguaje de programación sumamente versátil. Instalarlo es muy sencillo.
Actualmente existen dos versiones del lenguaje: 2 (2.7) y 3 (3.4). Las dos son muy parecidas pero son fundamentalmente diferentes, por lo que hay que estar seguros que queremos instalar.
Python generalmente viene pre-instalado y lo único que hay que hacer es echarlo andar, con el comando python
Python 2.7.4 (default, Sep 26 2013, 03:20:26) [GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Para echar andar la versión 3 solo basta ejecutar el comando python3
La actividad científica continuamente está generando conocimiento que redefine lo que sabemos sobre todos los aspectos de nuestra existencia. Un artículo científico registra de forma escrita este nuevo conocimiento con el fin de diseminarlo entre los expertos del área, de tal forma que ellos puedan confirmarlo o aún mejor, partiendo de éste generar nuevo conocimiento. Por lo anterior, cuando nos interesa saber sobre esa frontera del conocimiento los artículos científicos son una fuente invaluable. Sin embargo, leer un artículo no es fácil y es más bien un habilidad que hay que desarrollar ya que éstos están dirigidos a expertos del área y su contenido depende de convenciones del área. A continuación presentamos algunas sugerencias de como leer un artículo científico, mucha de mi experiencia se centra en computación y en particular en aprendizaje automático, así que este texto se centra en estas áreas.
Para entrar en ambiente comenzamos con Cake y su éxito “The Distance” ;-)
Ya ambientados proseguimos. Para cuantificar que tan cerca o lejos están dos puntos usamos el concepto de distancia. En la vida cotidiana usamos distancias sin detenernos a pensar mucho en ello, por ejemplo:
De esta forma podemos intuir que esos dos banderines en las esquinas de una cancha de fútbol están muy cerca en comparación de la UNAM al Centro Histórico, o aún mucho mucho mucho más cerca que lo que está el Sol de Neptuno. Resulta que esa intuición de que dos puntos están cercanos o lejanos los podemos calcular de distintas formas, sobretodo cuando los puntos en cuestión son representados en vectores.
Un problema que surge inmediatamente al trabajar con archivos de audio es la gran variabilidad de los valores en el dominio de la amplitud. Por ejemplo el siguiente audio1 :
esta compuesto por una secuencia consecutiva de 984,000 valores/muestras que representan el ‘volumen’ del sonido para diferentes tiempos en la grabación. Tratar de identificar patrones en esta secuencia de valores es una tarea titánica, además que no representa la forma en como el oído humano escucha, que es en el dominio de la frecuencia en lugar en el dominio de la amplitud. Los coeficientes cepstrales en la frecuencia-Mel tratan de resolver este problema (Mel-frequency cepstral coeficients, MFCC). Para lograr esto se intercambian segmentos/ventanas de la señal original con 13 valores/coeficientes. En la práctica una configuración común es reducir 160 muestras de amplitud a 13 valores, que significa que nuestro audio original queda representado por aprox. 79,950 valores.
Aunque hasta ahora me había resistido a trabajar con grabaciones de audio, dado los proyectos en los que estamos trabajando en el Grupo Golem he terminado con la necesidad de procesar una gran cantidad de grabaciones. Ya sea para hacer scripts de evaluación, identificar actividad o para extraer caracteristicas del audio. Como es esperarse en mi caso he estado utilizando python, sobretodo por la necesidad de automatizar las tareas.
Python tiene varias librerías y herramientas para trabajar con
audio1
. Uno de los requisitos que rápido surgió fue que la librería
debería ser compatible con ScyPy y NumPy, inmediatamente identificamos a
Audiolab
. Esta es un librería que puede leer de muchos formatos y lo
más importante nos entrega una estructura numpy
directamente!