Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Kawazu
December 14, 2021

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

Kawazu

December 14, 2021
Tweet

More Decks by Kawazu

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  7. View Slide

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

    View Slide

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

    View Slide

  10. そうだ!JetsonNanoを使おう!

    View Slide

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

    View Slide

  12. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. View Slide

  17. 起動しない

    View Slide

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

    View Slide

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

    View Slide

  20. View Slide

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

    View Slide

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

    View Slide

  23. View Slide

  24. 起動成功!

    View Slide

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

    View Slide

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

    View Slide

  27. View Slide

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

    View Slide

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

    View Slide

  30. 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アーキテ
    クチャが異なるために発生するエラー

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  34. View Slide

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

    View Slide

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

    View Slide

  37. 次回、完結編...?

    View Slide