Slide 1

Slide 1 text

JetsonNanoで 自動作曲配信システムを 作ってる途中の話 河津正和

Slide 2

Slide 2 text

河津正和 バックエンドエンジニア 自社サービス開発をしつつ、本業以外で フリーランス的な仕事なども Twitter: kawazu255_ 自己紹介

Slide 3

Slide 3 text

やってるコミュニティ 毎月ゲストをお呼びして シビックテックな話を伺う CivicTechRadio テクニカルディレクターの ための 技術知見共有コミュニティ Technical Director Meetup 音楽に関わる技術の LT MusicLT

Slide 4

Slide 4 text

以前作った自動作曲プログラム

Slide 5

Slide 5 text

システム構成 メロディ・伴奏 MIDI ドラム MIDI MIDI合成 MIDIファイル生成側 MIDIファイル再生側 合成後 MIDI

Slide 6

Slide 6 text

Google Magenta ● 米Googleのディープラーニング(深層学習)プロジェクト「Google Brain」から生まれ た、機械学習を用いて優れたアートや音楽を生み出せるかどうかを試すプロジェク ト。 ● 機械学習システム「TensorFlow」を使用している。 ● 学習モデルも存在しており、環境構築さえやれば作曲プログラムを動かすことがで きる。 ● https://github.com/tensorflow/magenta

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

毎回配信開始が手間 PCのリソース持っていかれる(CPUや 音声系)

Slide 9

Slide 9 text

もういっそのことずっと 配信しっぱなしにできたらいいのに

Slide 10

Slide 10 text

そうだ!JetsonNanoを使おう!

Slide 11

Slide 11 text

JetsonNanoな理由 ● もう一個ラップトップ買うのは流石に高い ● JetsonNanoなら(Macbookとかより)お得 ● Tensorflowが動くっぽいからMagentaも動くんじゃない?(適当)

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

ロードマップ ● JetsonNanoをセットアップ ● 自動作曲プログラムをJetsonNanoにセット ● 配信設定を整える

Slide 14

Slide 14 text

ロードマップ ● JetsonNanoをセットアップ ● 自動作曲プログラムをJetsonNanoにセット ● 配信設定を整える

Slide 15

Slide 15 text

用意したJetsonNano周辺機器 ● JetsonNano本体 ● ケースとファン ● 有線キーボード&有線マウス ● USB Wi-Fiモジュール(結局有線LANにした) ● ちっこいディスプレイ ● 5V/3AのmicroUSB電源は持っていた(ラズパイ用) ● microSDカードも持っていた(ラズパイ用でTeamのやつ)

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

起動しない

Slide 18

Slide 18 text

仮説 ● microUSB電源をさすとLED点灯するがそれすらない ● JetsonNanoのmicroUSBは5V/2A対応なのでそれが原因? ● 安定稼働のためには5V/4AのACアダプタがいいらしい ● ACアダプタを使うには一部回路をショートさせる必要あり(JetsonNano仕様) ● 回路ショートのためにジャンパワイヤを買おう

Slide 19

Slide 19 text

すでにジャンパピン刺さってた! 刺さってる状態でmicroUSBを使って たのが原因ぽい (新規購入の方気をつけて )

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

一度Nvidiaの画面になった後 起動しない

Slide 22

Slide 22 text

仮説 ● JetsonNanoハードの起動は成功しているのでOS側? ● microSDカードが怪しい ● UHS-I規格に対応するSDカードじゃないとダメっぽい!

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

起動成功!

Slide 25

Slide 25 text

ここまでの要約 ● 5V/4Aの電源を用意しておこう! ● UHS-I規格のSDカードを用意しておこう!

Slide 26

Slide 26 text

ロードマップ ● JetsonNanoをセットアップ(←詰まってるところ) ● 自動作曲プログラムをJetsonNanoにセット ● 配信設定を整える

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Docker化しているので docker-compose buildで 動くはず(鬼門) ちなみにMacでは動いた TensorflowがJetsonNanoで動くなら Magentaもいけると思うが...

Slide 29

Slide 29 text

$ sudo apt-get install python3-pip $ pip3 install pygame $ sudo apt-get install docker.io $ sudo apt-get install docker-compose

Slide 30

Slide 30 text

Step 3/18 : RUN apt update && apt install -y python-pip python3-pip ---> [Warning] The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested ---> Running in 2378b4820e6e standard_init_linux.go:228: exec user process caused: exec format error ERROR: Service 'magenta' failed to build: The command '/bin/sh -c apt update && apt install -y python-pip python3-pip' returned a non-zero code: 1 イメージをビルドしたマシンと、コンテナを実行するマシンのCPUアーキテ クチャが異なるために発生するエラー

Slide 31

Slide 31 text

ここがlinux/amd64前提なので書き換えの必要あり

Slide 32

Slide 32 text

arm64/v8のベースイメージを使って 自分でmagentaをインストール& 環境構築しないとダメそう

Slide 33

Slide 33 text

ロードマップ ● JetsonNanoをセットアップ(←詰まってるところ) ● 自動作曲プログラムをJetsonNanoにセット ● 配信設定を整える

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

Ubuntu用OBSがあるので いけそう(希望)

Slide 36

Slide 36 text

感想と今後 ● ハード系で詰まると機器などの調達でリードタイムあるから試すときは時間に余裕持ってやった ほうがいいですね(LT1週間前の突貫は無茶) ● JetsonNano上でmagentaの環境を作るところをやってみる ○ 最悪無理にdockerで作らなくてもいいかも ● AI系ライブラリがCPUアーキテクチャ依存なのはあるあるらしくて、もっと事前に調べておけばよ かった ● もっと音楽の話したかったのに気づいたらほぼ JetsonNanoとDockerの話だった ● magenta自動作曲用の学習モデルは色々あるらしく、次機会があればその辺り試してみた話を したいかも

Slide 37

Slide 37 text

次回、完結編...?