音メディア処理研究室

 
デモ大会

笑いの検出と笑い声の量の調整

2025年度のデモ大会で発表した内容です。

<概要>

本デモでは、Laugh detectionという深層学習モデルを使用し、笑い区分を抽出する。また、抽出した笑い区分を数値化し解析する。

<開発環境>

開発言語:Python

開発環境:Visual Studio Code

使用ライブラリ

・Numpy : 数値計算

・matplotlib : グラフの可視化

・librosa : 音声解析

・Pytorch : 笑い検出モデル

<発表資料>

Demucsを用いた楽曲音源分離および自録ボーカル差し替え再生

2025年度のデモ大会で発表した内容です。

<概要>

本デモでは、バンド音源を4つのパート(ボーカル・ドラム・ベース・その他)に分離し、分離した音源を用いて、自録ボーカルを差し替えて再生する環境を構築する。

<開発環境>

開発言語:Python

開発環境:Visual Studio Code

使用ライブラリ

・demucs(楽曲音源分離)

・tkinter(GUI構築)

・sounddevicce(音声再生制御)

・soundfile(音声ファイル読み込み)

・録音環境:Audacity

・使用音源:Fight/ハルカミライ youtubeより

<発表資料>

DJミックスにおいて最も重要なパートは何か?― 音源分離とBPM同期による違和感の比較 ―

2025年度のデモ大会で発表した内容です。

【概要】

本研究では、音源分離を用いて各パートを個別にBPM同期し、接続時の違和感を比較することで、
DJミックスにおいて重要なパートを明らかにすることを目的とした。

簡易DJディスクを用いて実験を行い、曲のつながりの自然さや違和感の強さを主観評価により評価した。その結果、drums パートを基準にBPMを揃えた場合が最も自然につながりやすいことが分かった。

【開発環境】

使用言語:Python

開発環境:Visual Studio Code

OS:Windows11

BPM変更・接続:Serato DJ Lite

使用楽曲:「カントリーロード」/ハルカミライ-YouTube上の楽曲音源を使用

:「星世界航行曲」/ハルカミライ-YouTube上の楽曲音源を使用

【発表資料】

音源分離を用いたバンド演奏のための個人練習支援システム

2025年度のデモ大会で発表した内容です。

<概要>

本デモでは、音源分離した4つのパートの再生を、顔の動きによって操作できるGUIを作成した。カメラ映像から取得した顔情報を用いて、上下左右の顔動作に応じて各パートのON/OFF操作を行う。

<開発環境>

開発言語:Python

開発環境:Visual Studio Code

使用ライブラリ

・Tkinter / ttkbootstrap (GUI作成)

・soundfile / sounddevice (音声ファイル読み込み、再生)

・OpenCV (映像取得)

・MediaPipe (顔検出)

<発表資料>

インパルス応答を用いた武道館音響の再現と、個人ライブ音源への適応

2025年度のデモ大会で発表した内容です。

<概要>

本デモでは、武道館の広さや空間の大きさ、反響の仕方などの情報から、簡易的なインパルス応答を作成した。また作成したインパルス応答を、ライン録りした個人のライブ音源に適用して、武道館でライブしているかのような音源を作成することを目的とする。

 

<開発環境>

開発言語:Python

環境  :Visual Studio Code、REAPER

OS    :Windows 11

 

<発表資料>

 

<実際の音源>

音源分離技術を用いた演奏者視点のバンド体験

2025年度のデモ大会で発表した内容です。

【概要】

本デモでは、楽曲を音源分離によって各パートに分解し、立体音響処理を用いてアンビソニック化したものをスピーカーで再生することで臨場感のあるバンド演奏空間を構成した。

さらに分離したピアノパートを演奏者自身の演奏に置き換えることで、バンドの一員として演奏している感覚を疑似的に体験できるとともに、実践的な個人練習や演奏の振り返りを可能にした。

【開発環境】

使用言語:Python

開発環境:音源分離モデル:htdemucs_6s

開発言語:Python

ソフトウェア:Visual Studio Code, Reaper

OS:Windows11

使用楽曲:「Pretender」/Official髭男dism-YouTube上の楽曲音源を使用

【発表資料】

 

【実際の演奏】

 

【参考文献】Reaperを用いたアンビソニックス立体音響音源の作成から再生までhttps://note.com/kimusho8/n/nf06bb90954e4

 

 

音源分離・コード分析を用いたtab譜作成支援

2024年度のデモ大会で発表した内容です。

<概要>

tab譜がない楽曲でも簡単にtab譜が作成出来たら効率よく練習ができると思い今回の実験に至った。

<開発環境>

開発言語:Python

環境  :Visual Studio Code

<手法>

<実行結果>

[分離前音源]

使用音源  swim/04 Limited Sazabys  youtubeより

(元音源)

 

[分離後]

(bass)

(drum)

(その他(ギターや打ち込み音源など))

(vocal)

分離後分離した音源(今回はギターの音源)にコード分析を行うと約0.1秒ごとにコードを表示される。

その後指定のサイトにアクセスされこのコードをもとにtab譜を作成する事が可能になる。

<まとめ>

コード推定を行うことによりtab譜の作成スピードがギターを触って音を探りながらするよりも向上した。

コード推定の精度が上がればさらに効率アップにつながると感じた。

<参考文献>

・Qiita AI音声解析・分離ソフトDemucsの検証レポート

mitzi2funk 2024/10/21

https://qiita.com/mitzi2funk/items/2a9c3492ac13d0a9f399

・AI研究所 PyTorchとは?できることや使い方、インストール方法を分かりやすく解説 坂本将磨 2025/1/3

https://www.ai-souken.com/article/what-is-pytorch

TorchScriptを用いた音源分離アプリケーション

2024年1月に行われたデモ大会の内容です。

・概要


PyTorchで作成された音源分離モデルをTorchScriptモデルに変換し、スマートフォン上で動作させることを目的にアプリケーションを作成しました。


TorchScriptは、PyTorchコードの表現を変換し、Pythonに依存しない環境でも動作することができるようになる仕組みです。これにより、基本的にPythonを実行することのできないスマートフォン上でも、音源に対する推論を可能にすることができると考え、作成に取り掛かることにしました。

・開発環境について


使用言語 : Kotlin
統合開発環境(IDE) : Android Studio(Ladybug 2024.2.1 Patch 2)
使用した分離モデル : open-unmix
Python(PyTorchモデル保存) : Python 3.11.9
アプリ実行環境 : Pixel 9 Pro(Android 15 AP4A.241205.013)

・アプリの動作イメージ

・分離に使用した音源

Mike’s Sulking / Spike Mullings より部分抜粋(25秒)
引用元 : https://www.cambridge-mt.com/ms/mtk/

・分離結果

open-unmixで使用されているモデルのうち、umxlモデルを変換し、利用しました。
実際の分離(分離スタートボタンを押してから分離が終了するまで)には、およそ21秒かかりました。

実際に端末上で分離した後の各音源は以下の通りです

1. ボーカル

2. ベース

3. ドラム

4. その他

・まとめ

TorchScriptを用いて、スマートフォン上でも音源分離を行うことができるアプリを作成できました。
プログラムの作成を通して、音データを扱うために、サンプリング周波数やチャンネル数、動作環境で利用できるライブラリの制約など、考慮するべき点が多数あることを学びました。
今回のプログラムでは、主にCPUを利用した音源分離を行う仕組みになっているため、モバイル上のリソースを有効活用したアプリケーションの作成にもつなげられると考えています。

・参考文献

TorchScript – PyTorch 2.5 documentation
https://pytorch.org/docs/stable/jit.html

PyTorchのモデルをTorchScriptへ変換する
https://ohke.hateblo.jp/entry/2019/12/21/230000

open-unmix-pytorch
https://github.com/sigsep/open-unmix-pytorch

フーリエ変換理解のための音声分析・合成ツールの製作

2024年度に行われたデモ大会で発表した内容です。

2258223 木村将太

 

音メディアを処理する上で、「フーリエ変換」というものがよく用いられます。
フーリエ変換とは、難しく言うと、時間領域の信号を「周波数領域」という別の視点から観測するために行う変換です。
時間領域と周波数領域の関係を把握することは非常に重要ですが、フーリエ変換を直感的に理解できない人も多く見られます。私もそのひとりです。

ここで、フーリエ変換とフーリエ逆変換についてです。
フーリエ変換は、簡単に言うと音を正弦波に分解する作業とも言えます。

対してフーリエ逆変換はその逆、正弦波を合成する作業と言えます。
つまりフーリエ変換した結果をフーリエ逆変換すれば元に戻ります。

 

音声の合成を直感的に行える機材として「オーディオミキサー」が存在します。
ミキサーでフーリエ逆変換を再現、つまり正弦波を合成し、フーリエ変換についての直感的な理解を深めることがこのデモの目標です。

まず声の周波数スペクトルを記録します。ここでフーリエ変換が行われ、声を構成する正弦波がわかります。
次にそれらをミキサーに入力し、先ほど記録した周波数スペクトルを参考にミキシングします。
そして、元の声と同じ音色が聴こえることを確認します。上手くいけば、原理上は同じ音色になるはずです。
正弦波を足し合わせただけなのに声が聴こえる、という状態になれば成功です。

実際に使うものはこちらです。
ハードウェア選定理由は、実験室にあったからという理由が大半を占めています。例えばマイクロホンは、本来ならば手に持ちやすく声の収音に適したもの(Shure SM58など)を採用するべきでした。
ソフトウェアは周波数スペクトルを表示するものと正弦波を出力するものを開発しました。

ソフトウェア開発環境はこちらです。
PythonライブラリのSounddeviceという音声入出力の基本的なライブラリを使用したのですが、そのベースとして用いられているPortAudioが、Windows PCとミキサーの間で多チャンネル通信を行うために必要な規格ASIOにデフォルトでは対応していませんでした。
今回は正弦波32chを同時にリアルタイムにミキサーに入力する必要があったためASIOは必須です。これを解決するためにかなり悪戦苦闘しました。
その他にも、スペクトル表示や音声出力をリアルタイムに途切れなく動作させるための実装が大変でした。

では、実際にデモを行います。

マイクに向けて「あー」と声を出し、スペクトルを記録します。

スペクトルは時間変化が激しいため、平均値を記録します。

この図では簡単のため100Hzと記載していますが、任意の値を基音として設定可能です。

ただ、倍音成分は基音の整数倍に固定されます。今回は開発が間に合いませんでしたが、実際のピーク値を生成すればさらに声の再現の質が上がるのではないかと考えられます。

スペクトルとフェーダー(音量調整つまみ)の対応イメージです。スペクトルの概形を参考に自分でフェーダーを動かし声の音色を再現します。

ミキサーには特定のチャンネルのみ聴く機能や、逆に特定のチャンネルを消音する機能が搭載されています。これらを使用し本当に正弦波のみで音が合成されていることを確かめます。正弦波を合成しただけで元の声と同じような音が生成できれば、その参考にした周波数スペクトルは正しい、つまりフーリエ変換が正しく行われたことになります。

このようにフーリエ変換の直感的な理解を手助けすることができればデモは成功です。

ESPnetを利用した自分自身の音声合成モデルの作成

2024年に行われたデモ大会の発表内容です。

2258234 瀬田啓太

背景

現在様々な場面において利用されている音声合成において、自分の声で文章を読み上げるモデルを作成したいと思ったため。

音声合成の仕組み

ESPnetとは

学習結果

学習に利用した文との比較

実際の音声

100epoch学習時

学習に利用していない未知の文との比較

実際の音声

100epoch学習時

検討

生成した音声に入るノイズ音について。

→学習した音声の録音環境に問題がある。

生成した音声の音割れや類似度合いについて。

→学習させた音声のデータ量が不足していた。

まとめと応用

参考文献