2022/06/16

Spleeter memo

概要

Spleeter は MIT で開発されている ML ベースの音声分割ツール。

ミックス済みの音楽ファイルから、ボーカルとインストゥルメントを別の Wav に分割したりできる。iZotope RX の Music Rebalance でも使われているとか。ほんと? 

Windows に Spleeter を入れたい。環境作りが面倒なので Anaconda をつかう。Docker イメージがあるらしいので Docker 版はそのうち考える。

手順

1. Anaconda をいれる

2. Anaconda Prompt を起動する

3. 準備

pip install --upgrade pip

conda update conda

conda install -c conda-forge ffmpeg libsndfile

pip install steeper --ignore-installed

→ --ignore-installed をつけないと llvmlite とかのアンインストールに失敗する

4. 試す

curl -O https://raw.githubusercontent.com/deezer/spleeter/master/audio_example.mp3

spleeter separate -p spleeter:2stems -o output audio_example.mp3

→ output/audio_example/にvocals.wavとaccompaniment.wavができあがる。

使い方

spleeter separate [オプション] 入力ファイル...

単純にボーカルとインストに分けたい場合は 
spleeter separate -o <出力フォルダ> 入力ファイル

spleeter separate --help でオプションの一覧がでる。

-b 出力ビットレート  : デフォルト 128K
-c 出力コーデック : デフォルト wav
-p モデル名 : デフォルト spleter:2stems

モデル名は以下のいずれか
- spleeter:2stems : ボーカル (vocals.wav) とインスト (accompaniment.wav) に分割
- spleeter:4stems : vocals, drums, bass, other の 4 つに分割
- spleeter:5stems : vocals, drums, bass, piano, other の 5 つに分割

入力ファイルは複数指定することで一括処理できる。



2017/12/20

Echo DotとGoogle Home Mini

Amazon Echo dotの申し込みをしていたのだけど、Google Home miniが半額3,000円で売っていたので衝動買いをしてしまった。
そして、今日ようやくEcho dotが届いたので、Google Home MiniとEcho dotが並んでいる。

Google Homeは2週間くらいつかって、Echoは今日だけだけどファーストインプレッション。

1.セットアップ:引き分け。どちらかというとGoogle
本体の設定はどちらも同じようなもの。
スマートフォンの専用アプリをインストールして、WiFiの設定をするくらい。

EchoはAlexaスキルがあるので、Radikoを使いたいときはスキルをインストールするなどカスタマイズが必要。

2.反応:Echo
単体のウェイクワードの拾いっぷりは特に変わらない。

小さいのでスピーカーとマイクが近いためかどちらも大音量で音楽をならしているとウェイクワードを拾わないのがつらい。
2台並べて片方で音楽かけてると、もう片方が反応しない。
自身で発している音をキャンセリングしているのだろうか?

が、ウェイクワードが短いのはマジで正義。
ウェイクワードを拾わなかったときに、オーケー、グーグルを何度もいうのは本当に苦痛。だんだんBlack Lagoonのダッチのようにオーケーレヴィ、クールに行こうぜとやりだす始末。
Echoはアレクサでいいし、プリセットの中からAmazon、Echo、Computerといくつか選べる。
「ねぇ」とか「おい」で反応できるようにしてほしい。

3.音質:Google
ニュースをしゃべらせたりは気にならないし、Alexaさんの声のほうが好き。
ただし、音楽をかけると圧倒的にGoogle Homeのほうが音がいい。
Echo dotはすっかすかなので、音楽をかける用途ならば上位機種を買うのが良いのかもしれない。

ただし、外部出力用のコネクタやBluetoothがあり、容易に外のスピーカーにつなげるので、そういうのが用意できればEcho dotでも気にならない。が、ついうっかりEchoではなくスピーカーに話しかけてしまう。

4.音声認識:引き分け
まだ、違いが感じられないが、〇〇を再生とかかけてとかの語尾や語順などのキーワードの柔軟性はなんとなくAlexaのほうがある気がするが、Alexaはカレンダーへのタスク登録ができるので、認識した文字列がぐだぐだになっているのを見るとがっかりする。

5.機能:今はEcho
スキルで拡張できるEchoのほうがいろいろなことができる。

ただGoogleも、Actions on Googleが出ているので増えると思うし、プリインでRadikoでラジオを聴いたり、寝るときに雨の音をかけてとかできる。

IFTTTで家の電気やPCの操作はどちらでもできる。
「OK Google、ただいま」で家の電気を全部つけて、「OK Google、おやすみ」で電気を全部消すなどをやっている。外出先からも確認や操作もできる。地味に便利だ。

が、スマートコンセントや赤外線キットを買っていたら2万ぐらいかかったので、Google Home Mini 3000円ひゃっほうとか言っても、外部機器で金がかかる。

6.その他もろもろ
設定用のアプリがどちらにもあるのだけれど、これはEchoのほうがよい。
タイマーとかアラームの設定値がみられたり安心感がある。

マニュアルもGoogle Homeはシンプルすぎていったい何ができるのかさっぱりわからない。比較的Echoのほうが親切。


ということで、スマートスピーカーを満喫している。
音声操作はちょっとと思っていたし、今も人前でハンズフリー通話や、Hey しりなんて卑猥なことをいうのは憚られるけど、家の中ならば気にせず言えるので、音声操作の楽さを楽しめる。

料理をしているときにタイマー操作に手を離さなくていいし、布団の中から出ずに家電を操作したりとか、リモコンを探す必要がないとか便利。

しかし、マイクで日ごろの会話を盗聴してるんじゃなかろうかとか、これらのスマートホーム用のデバイスは特性上、家のWiFiにつながなければならず、PCとかスマホと同一NW上にいて変な情報を盗まれていないだろうかとか、外部から操作されないだろうかとか心配になるところはある。

2016/04/28

トランスパイラが面倒くさい

babelでES6はいいんだけど、デバッグ時に変換後のコードでデバッグするのは本当に面倒くさい。
デプロイするときはいいけど開発時は元コードでみたい。
やっぱりこのアプローチは個人的には好きじゃないなぁ。

GWTみたいにIDE統合してJavaとしてデバッグできるとか、プラグインで動的に変換してデバッグ時は元コードがみられるようにして欲しいな。ことES6だけでいえば実装が進んでるブラウザで開発すれば良いだけかもだけど。

しかし、なんかWebのフロントエンド周りって今までの言語とか環境で駄目だったところを再発明してるような気がしてる。

ReactもVirtualDOMがすごいとかっていう前に、単純に解決するドメインはUIのコンポーネント化っぽいし。クライアントサイドでMVCとかFLUXの分離をやろうってデスクトップの分野で散々やったものの焼き直しをブラウザとHTMLとCSSとJSという制限の中で無理矢理あがいてる感じしかしない。

floatからflexboxで楽になりましたとか、Layoutマネージャがないせいでどんだけ無駄な苦労をしてるんだろう。
DnDで順序を変えるリストを作るのにデータに加えてDOM操作とかアホらしい。Cでデバイスドライバ叩きながらWindowを自前で描画するような気分だ。

WebComponentとかもあるけどHyper「Text」マークアップ用のタグでアプリを作ろうと頑張るからおかしくて、ネイティブアプリのように、アプリ用のマークアップでデザインを作って、その中でデータとしてTextを入れられるという方がよほど素直。
JSゴリゴリで作ろうとしている今のWebはもはやTextではなくてアプリなのだから。

そのうち一周回ってFlashとかAppletみたいなRIA基盤がまた出てきそうな予感。Canvasでゴリゴリ描画するUIコンポーネントを提供するフレームワークとか出てこないかな。
尤も単純にRIAにしちゃうと、検索性とかリンクの解析などWebの良さと相性が悪いから、コンテンツデータとかセマンティックはHTMLとして提供できなければならないけれど。