DesignSpark Electrical Logolinkedin
Ask a Question

Conception du Google Open Nsynth Super

Un instrument basé sur Raspberry Pi et l'apprentissage machine pour générer de nouveaux sons inédits à partir de l'analyse de sons existants.

Le NSynth (synthétiseur neuronal) est un algorithme d'apprentissage machine, ou d'intelligence artificielle (IA), développé par Google et ses collaborateurs, qui utilise un réseau neuronal profond pour apprendre les caractéristiques des sons, et ainsi créer un son entièrement nouveau, basé sur ces caractéristiques. Plutôt que de simplement mélanger des sons, il crée un son entièrement nouveau à l'aide des qualités acoustiques des sons d'origine.

Open NSynth Super est une interface physique expérimentale pour NSynth conçue autour d'une carte Raspberry Pi, d'un CI personnalisé et d'un simple boîtier découpé au laser. Elle est fournie avec des images de système d'exploitation clé en main qui comprennent des logiciels et micrologiciels préconfigurés, ainsi que des ensembles d'échantillons sonores. Ainsi, vous n'avez pas besoin de passer par la procédure extrêmement coûteuse en ressources de génération de fichiers audio pour commencer à manipuler le synthétiseur.

La conception du CI, du micrologiciel du microcontrôleur, du logiciel et du boîtier a été publiée sous licence Open Source ; chacun est donc libre de construire son propre Open NSynth Super.

Principe de fonctionnement

Schéma de l'auto-encodeur WaveNet. Source : magenta.tensorflow.org.


Comme évoqué précédemment, le NSynth utilise des réseaux neuronaux profonds pour générer des sons. Le site Web décrit le processus de la manière suivante :

"À l'aide d'un auto-encodeur, il extrait 16 caractéristiques temporelles essentielles à partir de chaque entrée. Ces caractéristiques sont ensuite interpolées de manière linéaire pour créer de nouvelles intégrations (représentations mathématiques de chaque son). Ces nouvelles intégrations sont ensuite décodées pour générer de nouveaux sons porteurs des qualités acoustiques des deux entrées."

Vous trouverez plus d'informations sur la Page NSynth : synthèse audio neuronale.

Aperçu de Open NSynth. Source : https://github.com/googlecreativelab/


Open NSynth Super prend ensuite les sons ainsi générés et fournit une interface physique ou un instrument avec les éléments suivants :

    • Entrée MIDI pour connecter un clavier de piano, un séquenceur ou un ordinateur, etc.
    • Quatre encodeurs rotatifs utilisés pour attribuer des instruments aux angles du dispositif
    • Écran OLED pour les informations sur l'état et le contrôle de l'instrument
    • Des contrôles précis pour :
      • La position définit la position initiale de l'onde.
      • L'attaque définit la durée nécessaire à la montée de niveau initiale.
      • La décroissance définit la durée nécessaire à la descente qui s'ensuit.
      • La maintenance définit le niveau au cours de la séquence principale du son.
      • Le relâchement définit la durée nécessaire au niveau pour décroître du niveau de maintenance à zéro.
      • Le volume définit le volume de sortie.
    • L'interface tactile permet d'explorer les positions entre les sons.

Un microcontrôleur gère les entrées physiques, il est programmé avant la première utilisation.

Nomenclature

Une nomenclature complète est disponible dans le répertoire GitHub. Un sous-ensemble de cette dernière est fourni dans ce document pour vous donner une idée des principaux composants utilisés.

    • 4 encodeurs rotatifs Bourns PEC11R-4315F-N0012
    • 2 CI de contrôleur tactile Microchip AT42QT2120-XU (899-6707)
    • 1 microcontrôleur 32 bits ARM Cortex STMicroelectronics STM32F030K6T6 (829-4644)
    • 1 convertisseur audio double numérique vers analogique 32 bits TI PCM5122PW (814-3732)
    • 1 écran OLED Adafruit de 1,3 pouce

Pour obtenir la liste complète, notamment les composants passifs, les fixations mécaniques, etc. consultez le répertoire GitHub.

Ce répertoire contient également des fichiers Gerber que vous pouvez transmettre au fabricant de CI de votre choix.

 

Montage

La majorité des composants est de type CMS et même si l'entraxe des broches ne fait que 0,5 mm environ, il est possible de soigneusement souder ces pièces à la main. Cependant, même si certains pensent que ce ne soit pas une nécessité absolue, il est conseillé de disposer également d'un stéréomicroscope et d'une station à air chaud. Bien entendu, vous devez également faire le plein de flux et de mèche à souder !

Pour plus de commodité, une table des indicateurs de composants est imprimée sur le CI.

Il est généralement plus pratique de commencer par les plus petites pièces et de progresser en taille, j'ai donc d'abord monté les résistances.

.

Puis vinrent les condensateurs.

Puis les CI..

C'est à ce niveau qu'un stéréomicroscope devient une aide très précieuse, en particulier si vous avez des courts-circuits.

Malheureusement, j'ai réussi à mettre trop de soudure sur les broches du convertisseur audio numérique vers analogique et, après avoir copieusement appliqué du flux et attaqué à la mèche de soudure, je me suis retrouvé avec des courts-circuits derrière les courbes des broches. C'était le moment d'utiliser la station à air chaud (124-4133)  ; après avoir suffisamment chauffé, la soudure a fondu et a coulé.

Si vous n'avez jamais utilisé de station à air chaud, je vous conseille de lire la publication dédiée du blog de Karl Woodward, Choosing your next soldering tool (Choisir votre prochain appareil de soudure).

L'écran est arrimé sous une découpe du CI grâce à des broches qui passent à travers les deux cartes sur le dessus et deux pattes remplies de soudure sur le dessous de la carte d'affichage.

Ensuite, j'ai monté les potentiomètres,

puis les encodeurs rotatifs à chaque angle.

Ci-dessus, la carte quasi complètement assemblée, à laquelle il ne manque que quelques connecteurs supplémentaires.

Notez qu'il y a très peu d'espace entre les broches des pièces soudées sur les deux cartes et les boîtiers de connecteurs métalliques Raspberry Pi, j'ai donc utilisé de la bande adhésive Kapton sur les pièces pour assurer l'ensemble.

Ceci est un peu plus visible avec la carte Pi montée au-dessus.

Ensuite, j'ai découpé le boîtier dans de l'acrylique rouge avant d'écrire une carte SD. Lors du premier démarrage, nous avons branché un clavier et un écran, afin de suivre la procédure de programmation du microcontrôleur, une opération simple et rapide.

Veuillez noter que ces instructions ne sauraient se substituer aux instructions officielles fournies dans le répertoire GitHub que vous devez consulter si vous avez l'intention de concevoir votre propre Open NSynth Super !

Essais

Pour le test, nous avons téléchargé un fichier MIDI sur Internet avant de le lire sur un ordinateur portable Linux via une interface USB/MIDI à l'aide de la commande "aplaymidi". Comme prévu, le NSynth Super s'est mis en marche, nous avons pu attribuer des instruments à chaque angle puis interpoler grâce à la magie de l'apprentissage machine pour créer des instruments nouveaux et jusqu'à présent inconnus, en tout cas à notre bataillon, tels que le "flarimba".

Andrew Back

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.

23 May 2018, 7:47

Commentaires