Koji Iino

Sound AI Engineer、組織作り、マネジメント LinkedIn:htt…

Koji Iino

Sound AI Engineer、組織作り、マネジメント LinkedIn:https://www.linkedin.com/in/koji78/

最近の記事

ドラム演奏を解析するAIモデルを構築

ドラムの耳コピもそれなりに時間がかかるので、100%の精度ではなくてもある程度解析してくれるAIモデルがあるだけでも楽になるかと取り組んでみた途中経過のメモです。 以前の音階判定のAIモデル部分的に流用して、出力をマルチクラス分類にすることも試しました。 目標ドラム演奏の録音データから、パーツ(スネアやバスドラなど)がどのタイミングで鳴っているか検出するAIモデルの構築。耳コピの軽減やサポート。初心者ドラマーが楽譜がない曲も練習して楽しめるように。 現在地クラス判定に対

    • 波形表示のReactコンポーネントの性能改善

      HTML Canvas上に波形を描画しています。オーディオを再生する場合にその波形をスクロールするようにしているのですが、拡大表示した状態でスクロールを実現するとPCのスペックと拡大率によってかなりカクついていました。それをスムーズに動作するように改善してみたメモです。 問題点拡大を実現するためにHTML Canvasのサイズを大きくしていたため、拡大率によっては横幅がかなり大きなサイズになるため、その時点で高い負荷のコンポーネントを画面上に描画していたため、単純なコンポー

      • RemixでMUIを使う

        MUIのドキュメントの通りにRemix上で使おうとするとサーバービルドでエラーとなります。その対処案の一つのメモです。 エラーMUIのコンポーネントを導入してみると、npm run dev(もしくはbuild)を実行で以下のようなエラーとなります。 11:41:02 [vite] Internal server error: Cannot use import statement outside a module at wrapSafe (node:intern

        • ipywidgetsでオーディオデータのグラフ表示を行う

          Jupyter Notebookなどでオーディオデータを時間ステップ毎に表示しようとすると、縦スクロールで大量の表示となったりグリッド表示しようとしても小さくなってしまいます。 そこで、ipywidgetsを使うとインタラクティブにスライドバーで任意の時間ステップのグラフ表示を行うことで効率的に表示・確認が行えます。 サンプル特定の時間ステップで表示したいグラフのサンプルです。 丈夫のスライドを動かすことで任意の時間に移動し、その時間でのスペクトログラムなど各グラフを表示

        ドラム演奏を解析するAIモデルを構築

          楽器演奏の録音データから音階を判定するAIモデルを構築

          楽器のチューナーなどがあるので、簡単じゃないかと思ってました。 そもそも音の切れ目をどうするか問題もあり、なかなか大変でした。 以下は現状整理という感じのメモです。 目標楽器演奏の録音データから、それぞれの音の音階を判定出来るAIモデルを構築することで耳コピの手間の軽減が目標です。 現在地まだ荒い部分はあるもののそれなりの精度になってきました。 上の画像が正解ラベルで下が推論結果です。 当初は`C-1`から`G9`までの分類を考えていましたが、一旦`C`から`B`までの

          楽器演奏の録音データから音階を判定するAIモデルを構築

          TensorFlow Liteへの変換で`missing attribute 'value'`エラー

          Keras形式やSaved Model形式のモデルをTensorFlow Liteで使えるように `tf.lite.TFLiteConverter` で変換しようとした際のエラー対処です。 loc(fused["ReadVariableOp:", “model/dence_1/Add/ReadVariableOp@__inference_serving_default_10100"]): error: missing attribute 'value'LLVM ERROR:

          TensorFlow Liteへの変換で`missing attribute 'value'`エラー

          WebサービスのX広告をグローバルに出してみた

          前回PRWebでプレスリリースをグローバルに出してみたのですが、X広告はどうなるのか気になったので出してみました。 結果PRWebのプランとほぼ同額の設定で出してみましたが、圧倒的な広がりでした。Webサービスへの流入量も大幅に増えました。 広告の種類にもよると思いますが、1万円ほどでも簡単に試して効果の様子み見れるのは良いですね。 キャンペーン作成最初、無料アカウントのまま広告出稿を試してみましたがダメでした。 広告アカウントや支払い方法の設定、広告の作成まで出来たの

          WebサービスのX広告をグローバルに出してみた

          PRWebでWebサービスのプレスリリースをグローバルに出してみた

          海外向けにプレスリリースを出してみたかったので、調査の中からコストとネットワークあたりからPRWebを試してみることにしました。 結果アジア以外が圧倒的に増えました。 一番安いプランを使ったのでユニークカウントなどは激増とはなりませんでしたが、グローバル向けプレスリリースの雰囲気は感じられたかなというところです。 また、PRWebの購読者がどのようなユーザー層かも分かりませんが、出す前にレビューで確認していた「営業メールが増える」も実感出来ました。 プレスリリース作成アカ

          PRWebでWebサービスのプレスリリースをグローバルに出してみた

          音解析AIのためのDeep Learningの訓練データのアノテーションツールをElectron, React, Pythonを組み合わせて自作してみる

          画像・動画のアノテーションツールは有料・OSSなど見つかりますが、訓練データ整形前は時間軸が異なる音のデータ(波形、スペクトログラムなど)に対して使いやすいツールが見つからないので自作してみようというものです。 Electron+Reactそもそも何故ネイティブアプリなどではないかというと、Webサービスで使うReactコンポーネントを共用出来たらいいなということが出発点でした。 単なるWebアプリですとローカルのファイルが扱いにくい点と、Webサービスとして起動するのもな

          音解析AIのためのDeep Learningの訓練データのアノテーションツールをElectron, React, Pythonを組み合わせて自作してみる

          Docker上でWebサービス+Fluentd+Elasticsearchでアクセスログ管理

          docker-compose.ymlKibanaからElasticsearchに接続する際は`kibana_system`を使う構成です。後述のスクリプトでパスワードを設定しています。 webappのloggingのtagの値でfluentdのフィルター等は構成します。後述の設定ファイルで定義します。 version: "3"services: elasticsearch: image: docker.elastic.co/elasticsearch/elasti

          Docker上でWebサービス+Fluentd+Elasticsearchでアクセスログ管理

          AWS EC2インスタンス(g4dn.xlarge)でCUDA, cuDNNのセットアップ

          情報を探したり少し手間だったのでメモです。 なお、TensorFlowのバージョン依存はこちらの「テストされたビルド構成」で確認出来ます(ヘッダーまで翻訳されていますが・・・) 「Ubuntu Server 20.04 LTS」のAMIで作成しています。 NVIDIAドライバのインストールAWSのドキュメントの「パブリック NVIDIA ドライバー」を参考にしました。 「G4dn」は「Tesla / T シリーズ / T4」のようです。 AWSのドキュメントにも記載があり

          AWS EC2インスタンス(g4dn.xlarge)でCUDA, cuDNNのセットアップ

          スタジオ・ライブ録音をオーディオ分割してリミックス

          全員で演奏して録音するいわゆる一発録りの場合は音の加工には限界がありましたが、AIでオーディオ分割するサービス「Original Track」で楽器毎に分割するとリミックスが出来るのでスタジオ・ライブ録画したもので実践してみました。 元の動画楽器の音圧の方が勝ってしまってボーカルが埋もれてしまっていました。 (演奏のクオリティなどは置いておいて下さい!) リミックス後の動画ボーカルを前に出すようにリミックス。相対的に楽器の音圧が下がっています。 (ひとまず色々できそうと

          スタジオ・ライブ録音をオーディオ分割してリミックス

          Sidekiqのみでinitializersを読み込む(SSL接続)

          問題initializers/sidekiq.rbを作成してRedisへSSL接続しようとしてもエラーになる。 起動時のログから謎にURLだけは反映されていたので余計に混乱していた。 require 'sidekiq'require 'dotenv/load'require 'openssl'OpenSSL.debug = trueredis_url = ENV['REDIS_URL'] || 'rediss://localhost:6379/0'redis_crt_pa

          Sidekiqのみでinitializersを読み込む(SSL接続)

          ウェブサイトへのCookieに関する同意モードの組み込み

          今やどのサイトでも見るようになったCookieの同意を、ウェブサイトに組み込む際のざっくりとしたまとめです。 ユーザーの同意を管理する理由Googleがまとめてくれています。 ざっくり全体イメージGoogle Analyticsで分析する場合のざっくり全体イメージです。 同意されていないと分析データとしては送られないというものです。 気になるのは、タグマネージャでプレビューで確認する限り、同意されていなくてもスクロールやクリックなどのイベントは取得されているように見えま

          ウェブサイトへのCookieに関する同意モードの組み込み

          スモールスタートのWEBシステム構成案

          PoCなどでスモールスタートのWEBシステムを構築する際に、コストやセキュリティなども考慮してベターと思われる構成案をメモしておきます。 あくまでの2023/11時点の個人の見解です。また、あくまでも一案なので参考程度に見ていただければと思いますし、今後変わっていくと考えています。 想定しているWEBシステム利用者にはクラウド上で利用してもらう(ブラウザで使う) UIはある程度動的な変化が必要(クリックすると画面遷移無しで変化) ある程度のデータ量があり検索パターンが複

          スモールスタートのWEBシステム構成案

          CTOに必要なスキルと特質

          CTO(最高技術責任者)は、企業の技術戦略とイノベーションを牽引する重要な役割を担います。ここでは、CTOに必要なスキルと特質について整理してみます。 技術的知識と専門性CTOは、企業の技術戦略を立案するために、幅広い技術的知識と専門性を持つことが求められます。業界の最新動向や技術、ツールを把握し、これらを戦略に取り入れる能力が重要です。 ビジョンと戦略的思考成功するCTOは、技術的なビジョンと戦略的思考を持ち、企業の成長や競争力向上に寄与する技術戦略を策定します。また、

          CTOに必要なスキルと特質