scieee AI-readable full text Open interactive document viewer

Herramienta para mejorar la afinación vocal en Android

Menchén Martín, Ramón,Barbancho-Pérez, Ana María,Herrero-Platero, María Inés,Tardón-García, Lorenzo José,Barbancho-Pérez, Isabel

Abstract

In this paper, a tool to improve vocal tuning in Android devices is presented. This application aims to offer exercises to practice and improve singing skills. The designed tool includes two main functionalities: sound synthesis, to provide with singing sound references, and fundamental frequency analysis, to analize the sound and check if the user sings the right musical note. The well-known Yin algorithm has been selected to perform the fundamental frequency analysis. Three different singing exercises are included: sing single notes, sing intervals and sing a note in order to complete a chord. The system also includes a graphical interface in which musical notation is employed to write down the singing sound. The system has been evaluated in order to test out its correct performance regarding both the analysis and synthesis of musical sounds.

Full text

Herramienta para mejorar la afinaci´ on vocal en Android Ram´ on Mench´ en, Ana M. Barbancho, M. In´ es Herrero, Lorenzo J. Tard´ on, Isabel Barbancho [email protected], [email protected], [email protected], [email protected], [email protected] Universidad de M´ alaga, ATIC Research Group, ETSI Telecomunicaci´ on, Dpt. Ingenier´ ıa de Comunicaciones, Campus Teatinos, 29071 M´ alaga, Spain Resumen—In this paper, a tool to improve vocal tuning in Android devices is presented. This application aims to offer exercises to practice and improve singing skills. The designed tool includes two main functionalities: sound synthesis, to provide with singing sound references, and fundamental frequency analysis, to analize the sound and check if the user sings the right musical note. The well-known Yin algorithm has been selected to perform the fundamental frequency analysis. Three different singing exercises are included: sing single notes, sing intervals and sing a note in order to complete a chord. The system also includes a graphical interface in which musical notation is employed to write down the singing sound. The system has been evaluated in order to test out its correct performance regarding both the analysis and synthesis of musical sounds. I. INTRODUCCI ´ ON La m´ usica es el lenguaje universal por excelencia el cual ha sido utilizado por el ser humano independientemente de su nivel educativo y cultural [1]. Una de las formas b´ asicas y naturales de interactuar con la m´ usica es cantar. Todo el mundo puede cantar, pero cantar de manera musicalmente afinada, requiere cierta pr´ actica. Actualmente, gracias a los avances tecnol´ ogicos el p´ ublico general tiene acceso a m´ ultiples dispositivos electr´ onicos como el ordenador, las tablets, los tel´ efonos m´ oviles, etc. Esta disponibilidad ha supuesto una revoluci´ on en muchos ´ ambitos, incluido el de la educaci´ on, ´ ambito en el que cada d´ ıa aparecen m´ as aplicaciones cuyo objetivo es la docencia y, dentro de este ´ ambito, el aprendizaje musical tambi´ en se ve favorecido. En esta comunicaci´ on se presenta una herramienta para mejorar la afinaci´ on al cantar. Esta aplicaci´ on tiene como p´ ublico objetivo tanto usuarios con muy pocos conocimientos musicales como usuarios con ciertos conocimientos, que quieran mejorar y practicar distintos aspectos de afinaci´ on de la voz. La gran ventaja de esta aplicaci´ on frente a muchas otras, es la interactividad que proporciona, dado que eval´ ua de manera interactiva la afinaci´ on de las notas cantadas por los usuarios. La herramienta presentada en esta comunicaci´ on se ha desarrollado en Android. Android es un sistema operativo personalizable y f´ acil de utilizar que incluyen m´ as de mil millones de dispositivos de todo el mundo [2]. La aplicaci´ on est´ a pensada para usuarios de todas las edades e incluye tres tipos de ejercicios: cantar notas individuales, cantar intervalos y cantar una nota para completar un acorde. La estructura de esta comunicaci´ on es la siguiente: en el Apartado II, se presenta la estructura de la herramienta desarrollada. A continuaci´ on, en el Apartado III, se presentan los subsistemas de procesado de se˜ nal que ha sido necesario desarrollar para la aplicaci´ on. En el Apartado IV, se enumeran las clases Android utilizadas para poder desarrollar estos subsistemas. El Apartado V, describe el funcionamiento de la herramienta, basado en los distintos tipos de ejercicios musicales implementados. La evaluaci´ on del funcionamiento de la aplicaci´ on se muestra en el Apartado VI. Por ´ ultimo, en el Apartado VII, se presentan las conclusiones extra´ ıdas de este trabajo. II. DESCRIPCI ´ ON DEL SISTEMA La estructura de herramienta para mejorar la afinaci´ on vocal, se presenta en la figura 1. Tal como se muestra en esta figura, la herramienta est´ a dividida en tres tipos de ejercicios (Notas, Intervalos y Acordes) y dispone de dos subsistemas auxiliares (detecci´ on de frecuencia fundamental y generaci´ on de sonidos). Fig. 1. Estructura de la herramienta de afinaci´ on vocal. En una herramienta de afinaci´ on vocal, es fundamental detectar la nota que canta el usuario o, mejor dicho, la frecuencia fundamental para saber si est´ a realizando de manera correcta o no el ejercicio. Adem´ as, dado que se quiere entrenar el o´ ıdo del usuario as´ ı como mejorar sus habilidades para cantar en grupo, es fundamental disponer de un m´ odulo de generaci´ on de sonidos afinados, que permita tener referencias sonoras exactas. En el apartado siguiente (Apartado III), se detallan las caracter´ ısticas de los subsistemas de procesado de se˜ nal que se incluyen en la herramienta y que corresponden a la generaci´ on de sonidos por s´ ıntesis aditiva y a la detecci´ on de la frecuencia fundamental. III. SUBSISTEMAS DE PROCESADO DE SE ˜ NAL El desarrollo de nuestra aplicaci´ on interactiva para la mejora de la afinaci´ on de la voz, necesita dos componentes fundamentales: un sintetizador de sonidos afinados para proporcionar referencias sonoras correctas y un estimador de la frecuencia fundamental de la nota que canta el usuario. Hay que destacar, que la estimaci´ on de la frecuencia fundamental de la nota que canta el usuario, es una de las caracter´ ısticas principales que distingue esta herramienta de muchas otras aplicaciones de aprendizaje musical que hay disponibles. A. S´ ıntesis de Sonido Entre los distintos tipos de s´ ıntesis de audio que existen, para esta aplicaci´ on se ha seleccionado la s´ ıntesis aditiva [3]. En la s´ ıntesis aditiva el sonido se construye sumando, por cada arm´ onico que tenga el sonido, un tono puro cuya amplitud var´ ıa en el tiempo seg´ un el arm´ onico que se considere. Con este tipo de s´ ıntesis, se controla la posici´ on de cada uno de los arm´ onicos que componen los distintos sonidos musicales. En esta aplicaci´ on, no es necesario imitar el timbre de ning´ un instrumento concreto. Lo ´ unico que se busca, es un sonido en el que sea sencillo identificar la frecuencia fundamental, que resulte agradable de escuchar y con la m´ ınima complejidad posible. Para realizar la s´ ıntesis aditiva de un sonido arm´ onico, hay que decidir, fundamentalmente, tres elementos: El n´ umero de arm´ onicos a sintetizar por cada sonido. Tras realizar m´ ultiples pruebas, se ha comprobado heur´ ısticamente que tres arm´ onicos son suficientes para generar un sonido con un timbre agradable. La envolvente de la amplitud, en tiempo, de cada uno de los arm´ onicos. Se ha decidido, por simplicidad, utilizar la misma para todos los arm´ onicos. En la Fig. 2(b) se presenta la aproximaci´ on a la envolvente de amplitud que se ha utilizado. Esta aproximaci´ on es lineal a tramos de forma que su generaci´ on sea muy sencilla. La amplitud relativa entre los distintos arm´ onicos. En la Fig. 2(a) se muestra el perfil de amplitud de los tres arm´ onicos elegidos. Fig. 2. a) Perfil de amplitud de los arm´ onicos. b) Envolvente de amplitud de los arm´ onicos En el procesado correspondiente a esta s´ ıntesis aditiva de generaci´ on de sonido, se han empleado los siguientes par´ ametros de configuraci´ on: Frecuencia de muestreo: se ha utilizado 44100Hz para lograr una s´ ıntesis de buena calidad. Configuraci´ on de canal: la configuraci´ on de canal para el objeto AudioTrack ser´ a mono. Formato de audio: las muestras estar´ an codificadas en PCM de 16 bits, dado que es el formato con mayor calidad para el que se garantiza el buen funcionamiento en todos los dispositivos. Tama˜ no de buffer: es el propio de la clase AudioTrack. Modo de lectura: configurado en modo Streaming, para escuchar las se˜ nales en tiempo real mientras se van sintetizando. Dado que el coste computacional de la s´ ıntesis de audio es muy alta, esta tarea se ha enviado a un hilo independiente, mediante la clase Thread. Adem´ as, se ha permitido que, si el usuario utiliza auriculares, pueda cantar a la vez que escucha el sonido sintetizado. Esta es una caracter´ ıstica muy interesante tanto para afinar una nota simple como para cantar intervalos o completar acordes. B. Estimaci´ on de la frecuencia fundamental La estimaci´ on de la frecuencia fundamental de un sonido es una tarea que ha sido estudiada durante d´ ecadas [4] y, en especial, para el caso de la voz [5]. Actualmente, se encuentran en la literatura una gran variedad de m´ etodos. De todos ellos, el que se ha seleccionado para esta aplicaci´ on es el algoritmo Yin [6], que fue desarrollado en 2002 por Cheveign´ e y Kawahara. Este algoritmo se basa en el m´ etodo de la autocorrelaci´ on [7], pero introduce muchas mejoras en su funcionamiento. En la figura 3, se muestra el diagrama de bloques del algoritmo Yin utilizado. En este diagrama aparece reflejada la funci´ on de media normalizada acumulativa, que es la responsable de reducir los errores respecto a la funci´ on de autocorrelaci´ on cl´ asica. Fig. 3. Diagrama de bloques del algoritmo de Yin [6] utilizado. Para la estimaci´ on de la frecuencia fundamental con este algoritmo, se han empleado los siguientes par´ ametros de configuraci´ on: Frecuencia de muestreo: se ha utilizado 11025Hz, ya que es una de la frecuencias recomendadas por Android, para todas las versiones y dispositivos, y es suficiente para detectar frecuencias fundamentales por debajo de 1046.5Hz, que es la correspondiente a un Do6. Esta es la nota m´ as aguda que se puede esperar de un cantante. Configuraci´ on de canal: la configuraci´ on de canal para el objeto AudioRecord es mono, dado que es c´ omo se capta la se˜ nal habitualmente. Formato de audio: las muestras estar´ an codificadas en PCM 16 bits. Modo de lectura: se configura en modo streaming de forma que se podr´ an analizar las muestras en tiempo real. IV. PRINCIPALES CLASES ANDROID UTILIZADAS Una vez identificados los subsistemas de procesado de se˜ nal necesarios en la aplicaci´ on, se han seleccionado las clases Android que mejor se adaptan a las necesidades de interacci´ on con el audio de la herramienta desarrollada. Las principales clases utilizadas en la aplicaci´ on son [8]: AudioTrack: es la clase Java que permite manejar y reproducir recursos de Audio. Esta clase permite reproducir se˜ nales mientras se van introduciendo muestras en el objeto que la instancia. Esta clase se utiliza para sintetizar los sonidos necesarios para la aplicaci´ on. AsynTask: es una clase abstracta, de la que debe heredar cualquier otra clase que pretenda derivar alguna tarea a un hilo de procesos, que no sea el hilo principal de la aplicaci´ on. Se utiliza para realizar la detecci´ on de tono de la nota cantada por el usuario en un hilo independiente. Thread: es una clase similar a la anterior, pero permite infinitos procesos independientes. Se utiliza para la s´ ıntesis de sonidos. AudioRecord: permite manejar se˜ nales que son captadas por el micr´ ofono del dispositivo. SharedPreferences: es la interfaz para acceder y modificar los datos de preferencia de la aplicaci´ on, para los cuales s´ olo hay una ´ unica instancia que se comparte a lo largo de todas sus clases. V. FUNCIONAMIENTO DE LA APLICACI ´ ON La aplicaci´ on se estructura en tres ejercicios de dificultad creciente, de manera que cada uno de ellos constituya un reto para el usuario: Notas individuales (secci´ on A). Intervalos (secci´ on B). Acordes musicales (secci´ on C). Estos tres niveles, dan lugar a tres pantallas diferentes pero con est´ etica y l´ ogica muy parecidas. Por otra parte, es necesario almacenar una serie de variables propias de cada usuario como son las notas l´ ımite de su tesitura y los tipos de intervalos a practicar. En esta aplicaci´ on la tesitura se puede variar entre Mi2y Do6, para tener en cuenta tanto voces masculinas como femeninas. En cuanto a los intervalos, se han seleccionado 11 tipos diferentes de intervalos (2oMayor, 2omenor, 3oMayor, 3o menor, 4oJusta, 5oJusta, 6oMayor, 6omenor, 7oMayor, 7omenor), que son los m´ as utilizados en m´ usica [9]. Por lo tanto, se incluye una pantalla de opciones, que se representa en la Fig. 4 (a). Adem´ as, como en cualquier aplicaci´ on habitual, se a˜ nade una pantalla de men´ u para seleccionar los ejercicios as´ ı como una pantalla de ayuda. (a) (b) Fig. 4. (a) Pantalla de opciones de usuario. (b) Pantalla Notas mientras el usuario est´ a cantando un Do4. En los tres ejercicios, el usuario ha de cantar una nota determinada y la aplicaci´ on ha de evaluar si lo hace de forma correcta. Por ello, en todas las pantallas de ejercicios (Fig. 4(b), Fig. 6(a) y Fig. 6(b)) se ha incluido, adem´ as de la frecuencia en hertzios detectada, una barra de puntos que se van encendiendo en funci´ on de la frecuencia, con la que, gr´ aficamente, el usuario puede ver c´ omo de cerca o lejos est´ a de la afinaci´ on justa. En la Fig. 5, se muestra la barra de detecci´ on de frecuencias, junto con el criterio de encendido de los puntos. Es de destacar, que se da por buena la afinaci´ on si se canta entre un tercio de semitono superior e inferior respecto a la nota exacta. El resto de puntos se encienden en los sucesivos tercios de tonos superiores e inferiores, excepto los puntos de las esquinas que no tienen l´ ımite inferior y superior, respectivamente, de filtrado. Utilizar el filtrado tomando como referencia el semitono, hace que la impresi´ on de frecuencia se asemeje a la del o´ ıdo humano, aunque esto haga que el ancho de los filtros var´ ıe con la frecuencia fundamental a cantar, por la naturaleza logar´ ıtmica de las escalas y el o´ ıdo humano. Fig. 5. Barra de detecci´ on de frecuencias. A. Notas musicales individuales El primer y m´ as sencillo de los ejercicios de canto que se pueden realizar, consiste en escuchar una nota, y a continuaci´ on repetir, cantando, dicho sonido. Por lo tanto, el primer ejercicio de esta herramienta consiste en cantar una nota que ha sonado previamente. El funcionamiento del ejercicio de notas individuales es el siguiente. Al usuario, tras haber configurado su tesitura en la pantalla de opciones, se le presenta en la pantalla principal una nota aleatoria dentro de su tesitura para cantar (Fig. 4 (b)). La nota a cantar aparece tanto escrita en pentagramas como con su nombre. A continuaci´ on, el usuario puede cantar de inmediato la nota pulsando el bot´ on del micr´ ofono o pulsar el bot´ on del altavoz para escuchar previamente c´ omo suena. Con la barra de detecci´ on de frecuencias, se muestra lo cerca o lejos que est´ a la nota de aquella que hay que cantar. B. Intervalos musicales Cuando se quiere cantar correctamente, adem´ as de repetir una nota que ha sonado previamente, hay que ser capaz de interpretar una nota bien entonada, a partir del sonido de otra diferente que se ha interpretado previamente. En otras palabras, se trata de cantar intervalos [9]. Por lo tanto, el siguiente ejercicio de canto que se incluye en esta aplicaci´ on es el de cantar intervalos. El funcionamiento del ejercicio de intervalos es el siguiente: configurar tanto la tesitura como el tipo de intervalos que quiere practicar, al usuario se le presentan en los pentagramas las notas que componen el intervalo a practicar (Fig. 6(a)). A la derecha de la pantalla se le indica tambi´ en, el tipo de intervalo y la nota a cantar. A continuaci´ on, si se pulsa el bot´ on altavoz se escucha la nota de referencia. Adem´ as, si se (a) (b) Fig. 6. (a) Pantalla Intervalos cuando se emite un Sib3de referencia para cantar un intervalo de s´ eptima mayor. (b) Pantalla Acordes cuando suena el acorde de Do menor y hay que completarlo con la tercera (nota Re#4). prefiere se puede pulsar el bot´ on del nombre del intervalo y sonar´ an las dos notas a la vez. Cuando el usuario se siente preparado, pulsa el bot´ on micr´ ofono para cantar la nota que se le solicita. De nuevo, con la barra de frecuencias se comprueba la separaci´ on entre la nota cantada y la nota a interpretar. C. Acordes musicales En los dos ejercicios anteriores, se han practicado notas sueltas o intervalos, pero lo normal en m´ usica es que suenen m´ as de dos notas diferentes a la vez. Por tanto, un individuo debe ser capaz de cantar una nota escuchando dos o m´ as notas diferentes de manera simult´ anea [9]. La suma de tres o m´ as notas diferentes se denomina acorde. Existen muchos tipos de acordes, pero los m´ as comunes son los perfectos mayores y menores, que son los m´ as simples y consonantes que existen [10]. Por ello, este es el tipo de acordes que se van a practicar en esta aplicaci´ on. El funcionamiento del ejercicio de acordes es el siguiente: Tras configurar la tesitura, al usuario se le presentan las tres notas que componen el acorde a practicar (Fig. 6(b)), de las cuales deber´ a cantar una de ellas. A la derecha de la pantalla se le indica, el tipo de acorde que forman y la nota que tiene que cantar. Si se pulsa el bot´ on altavoz se escuchan las dos notas que acompa˜ nan a la nota a cantar. Adem´ as, si pulsa el bot´ on del nombre del acorde, el usuario puede escuchar las tres notas a la vez. El usuario, al igual que en los casos anteriores, ha de pulsar el bot´ on micr´ ofono para cantar y podr´ a observar c´ omo est´ a cantando la nota que completa el acorde, desde el punto de vista de la entonaci´ on. VI. EVALUACI ´ ON DEL SISTEMA Se ha comprobado el correcto funcionamiento de todos los botones y enlaces entre pantallas, mediante la interacci´ on con la aplicaci´ on en distintos dispositivos m´ oviles. Sin embargo, para comprobar el funcionamiento de los subsistemas de procesado de se˜ nal, ha sido necesario utilizar el depurador de Eclipse para poder extraer los valores generados por la s´ ıntesis de sonido y los detectados por la aplicaci´ on para as´ ı analizarlos con una aplicaci´ on externa. En concreto, para estas comprobaciones se ha utilizado Matlab [11]. Se han sintetizado todas las notas y se han cantado todas las notas, dentro del rango de funcionamiento de la aplicaci´ on (Mi2a Do6, comprob´ andose que tanto la s´ ıntesis como la detecci´ on es correcta. Para cantar las notas se han utilizado muestras de Vocaloid [12], para poder controlar la frecuencia exacta de las notas. En todos los casos se han obtenido resultados correctos tanto del sintetizador como del detector. VII. CONCLUSIONES En esta comunicaci´ on se ha presentado una herramienta para mejorar la afinaci´ on vocal, programada en Android. Para conseguir una buena interactividad con el usuario, se incluye un sistema de s´ ıntesis de sonido que permite proporcionar referencias sonoras correctas, y un sistema para estimar en tiempo real la frecuencia fundamental de la nota que canta el usuario. La t´ ecnica que se ha utilizado para sintetizar sonidos es la aditiva, dado que facilita controlar la posici´ on de los arm´ onicos del sonido a generar as´ ı como la envolvente de los mismos. El m´ etodo que se ha implementado para estimar la frecuencia fundamental es el algoritmo Yin [6], que ha permitido tener una estimaci´ on robusta de las notas cantadas por los usuarios de la aplicaci´ on. La aplicaci´ on se ha estructurado en tres ejercicios de dificultad creciente: notas individuales, intervalos y acordes musicales. La selecci´ on de estos ejercicios hace que la herramienta dise˜ nada sea ´ util para usuarios con diversos niveles de canto. Por ´ ultimo, se ha comprobado que todas las opciones y funcionalidades de la aplicaci´ on, incluyendo los esquemas de procesado de se˜ nal, funcionan de forma correcta. AGRADECIMIENTOS Este trabajo ha sido financiado por el Ministerio de Econom´ ıa y Competitividad del Gobierno de Espa˜ na, Proyecto TIN2013-47276-C6-2-R. Este trabajo ha sido realizado en la Universidad de M´ alaga. Campus de Excelencia Internacional Andaluc´ ıa Tech. REFERENCIAS [1] I. Shara, “La m´ usica es el lenguaje universal por excelencia,” Voces, Enero, 2014. [2] J. Ribas-Lequerica, Desarrollo de aplicaciones para Android, Anaya, 2011. [3] R. Boulanger, The Csound Book: Perspectives in Software Synthesis, Sound Design, Signal Processing and Programming, The MIT Press Order, 1999. [4] E. G´ omez, A. Klapuri, B. Meudic, “Melody description and extraction in the context of music content processing, ” Journal of New Music Research, vol.32, no. 1, pp. 23-40, 2003. [5] E. Molina, L.J. Tard´ on, A.M. Barbancho, I. Barbancho, “SiPTH: Singing Transciption Based on Hysteresis Defined on the Pitch-Time Curve, ” IEEE/ACM Transactions on Audio, Speech, and Language Processing vol.23, no. 2, pp. 252 - 263, 2014. [6] A. De Cheveign´ e, H. Kawahara, “YIN, a fundamental frequency estimator for speech and music,” Journal of the Acoustical Society of America, vol.111, no. 4, pp. 1917-1930, 2002. [7] L. Rabiner, R. Schafer, Digital processing of speech signals. PrenticeHall Series in Signal Processing No. 7, Englewood Cliffs: Prentice Hall, 1978. [8] Android Developers, http://developer.android.com, last retrieved 02/02/2015, Official web site, 2015. [9] D. De Pedro, Teor´ ıa completa de la M´ usica vol. 1 y vol. 2 (Edici´ on revisada), Real Musical-Carisch Espa˜ na, 2014. [10] J. Raso del Molino, Compendio de Armon´ ıa Razonada, Volumen I, II y III, Ediciones Si bemol, 1996. [11] The MatWorks, Inc., http://es.mathworks.com, last retrieved 07/04/2016, Official web site, 2016. [12] H. Kenmochi, H. Ohshita, “Vocaloid-commercial singing synthesizer based on sample concatenation, ” in Interspeech 2007, pp. 4009-4010, 2007