こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
こちらの記事の感想をお聞かせください。
ラズパイと機械学習を利用した異なる音の間から新しいユニークな音を創る楽器
NSynth (ニューラルシンセサイザー) とは、Googleの研究プロジェクト「Magenta」で作成された「AI」音声合成アルゴリズムだ。ディープニューラルネットワークを使用して音の特性を学習することで新しい音を作成する。ただ音をミキシングするだけでなく、元の音の音質を使って全く新しい音(新しい楽器)を創り出すことができる。
このNSynthアルゴリズムを使用して作成された電子楽器のプロトタイプが「NSynth Super」だ。このNSynth Superは誰でも自由に、そしてはんだ付けの経験があれば簡単に作成することができる。というのも、ソフトウェア類はすべて公開されており、そのソフトにはサンプル音源も付属しているため、手元に楽器の音源が用意できなくても、サンプル音源を使用して新しい楽器を創り出すことができる。また、そのまま製造業者に委託できるようプリント基板やエンクロージャーのデータも公開されている。
動作原理
WaveNetオートエンコーダーのダイアグラム。出典: magenta.tensorflow.org.
前述した通り、NSynthはディープニューラルネットワークを用いて音を生成する。このウェブサイトでは以下のようにプロセスを記述している。
“オートエンコーダーを使用し、各入力から時間的特徴を定義する16個の要素を抽出する。これらの特徴量は線形補間され、新しい埋め込み(各サウンドの数学的表現)が作成される。これらの新しい埋め込みは、両方の入力の音響特性を持つ新しい音にデコードされる。”
詳細はこちらを参照。 NSynth: Neural Audio Synthesis page
Nsynth Superの概要。出典: https://github.com/googlecreativelab/
NSynth Superは生成されたオーディオを取り込み、以下のような物理的なインターフェースや楽器に提供する。
- MIDI入力端子 ピアノのキーボードやシーケンサー、PCなど
- 4つのロータリーエンコーダー 機器の四隅に対応する楽器を割り当てる
- OLEDディスプレイ 楽器の状態や制御情報の表示用
- 優秀なコントローラー類:
- Position(ポジション) 波の初期位置の設定
- Attack(アタック) 音の立ち上がりにかかる時間の設定
- Decay(ディケイ) Attackの音のレベルから減衰する時間の設定
- Sustain(サスティン) 持続中(鍵盤を押している間)の音のレベルの設定
- Release(リリース) Sustainの音のレベルが減衰する時間の設定
- Volume(ボリューム) 出力する音量の設定
- タッチインターフェース 音の位置を確認する用
操作情報はあらかじめ搭載されたコードでマイコン制御されており、すぐにそのまま演奏使用できる。
部品表
こちらでは主に使用する部品を紹介している。
- Raspberry Pi 3 Model B 1台 (125-4093)
- Alps RK09Kシリーズ ポテンションメーター 6個 (729-3603)
- Bourns PEC11R-4315F-N0012 ロータリーエンコーダー 4個
- Microchip AT42QT2120-XU 静電容量式タッチセンサ 2個 (899-6707)
- STMicroelectronics STM32F030K6T6, 32ビット ARM Cortex コア
マイコン 1個 (829-4644)
- STMicroelectronics STM32F030K6T6, 32ビット ARM Cortex コア
- TI PCM5122PW, オーディオD/Aコンバータ 1個 (814-3732)
- Adafruit 1.3インチ OLEDディスプレイ 1台
完全な部品表や、パーツの詳しい取り付け方法などはGitHubのリポジトリを参考にしてほしい。
こちらのリポジトリにはプリント基板のガーバーデータも載っている。
組み立て
部品の大半は表面実装でリードピッチは0.5mmほどだが、慎重にすれば手作業でも行うことができる。しかし、絶対に必要というわけではないが、顕微鏡やホットエアステーションがあると良いだろう。そして、言うまでもなくフラックスとはんだもたくさん必要だ。
プリント基板に指定部品の取り付け表が印刷されている。
一般的にサイズの小さい部品から取り付けるのが理にかなっているため、まずは抵抗を取り付けていく。
次にコンデンサ。
その後、ICチップへ。
ICチップのはんだ付けがうまくいかない場合、顕微鏡がとても役に立つだろう。
もしも、はんだを付けすぎてICチップ等の足が短絡してしまうような場合、ホットエアステーション (124-4133) を使用してはんだを熱し溶かして取り除こう。
あなたが一度もホットエアステーションを使用したことがない場合、Karl Woodwardのブログ記事 Choosing your next soldering tool を見ることをおすすめする。
ディスプレイはプリント基板内の切り欠きの下で、上部の両方の基板を通すピンとディスプレイボード下部の二つの突起をはんだで固定する。
その後、ポテンションメーターを取り付ける。
次に、四隅にロータリーエンコーダーを取り付ける。
上の写真はほとんどの部品が取り付けられた基板で、後の作業はいくつかのコネクタを取り付けるだけだ。
スルーホールの部分のピンとラズパイのコネクタの金属ハウジングの間に隙間があまりないため、Kaptonの絶縁テープを貼った。
ラズパイを上に載せた写真だと、絶縁したところが少しよく確認できるだろう。
次に、赤いアクリル板でケースを作成し、SDカードにOSを書き込む。最初の起動では、キーボードとモニターを接続し、マイコンを設定する手順に従う。これはかなり簡単で時間はあまりかからなかった。
詳しい手順や独自のNSynth Superを構築したい場合はGitHubのリポジトリを参照してほしい。
動作確認
インターネットからMIDIファイルをダウンロードし、 "aplaymidi"コマンドを使って、LinuxラップトップとUSB / MIDI端子を接続してテストした。確かにNSynth Superは起動したので、各コーナーに楽器を割り当て、機械学習で音を補間し、これまで知られていなかったフルートとマリンバを合わせた楽器「フラリンバ」を作成した。