はじめに
連投はやっぱり無理です。ごめんなさい。
(6月末まで反省キャンペーン中です。内容を順次リファインします。)
サウンドデータベーステストサンプルです
準備:その2.9で結合した機械学習用の音です。聞くと、結合されただけでありがたみはありません。
SoundCloudはそういえばダウンロードできないんでした。
フリーのネットワークストレージを探します。
ちなみにタグはこんなふうについています。
本当は「ソース」に楽器名などをのせるつもりでしたが、説明に「元データを提供した人または組織を書く」と例示で明記してありましたので、無難な「ソフトウェア」欄に入れました。
コメントには各音の情報をリスト形式で格納しました。
視聴頂いた方どうも有難うございます
おかげ様でcarpet of the sunの視聴回数が16HITになりました。目標まであと「4」です!!
(ここから追記)
内容的にこまぎれになるので(連投もあきらめたことですし)こちらに追記します。
サウンドデータサンプルについてのお題のままです。
そもそも10万音無理でした
10万音ぶんのデータ:50音×2000ファイル(内容は重複)を仮準備してテストとして結合してみました。待つこと1時間弱。ようやく出力!というところでエラーとなりました。数字がおおきすぎて、4バイトリトルエンディアンに変換できないエラー(エラーメッセージはひかえませんでしたが、もう一度やる元気はないです)が発生しました!
通常waveファイルフォーマットは4GBが最大なのに6GBくらいになるデータをつくってサイズをいれるとき、4バイトに収まらない数となりました。
機械学習用の情報も入れて1ファイルにするので、だいたい今のサンプル数(1音32,678サンプル(0.68秒)では6万音までです。0.34秒は少し短い(というよりあとで聞いてて楽しくない)ので倍にしましたが、0.34秒から0.68秒の間に調整する「かも」しれません。
5000音で320MBくらい、6万音で3.8GBくらいです。6万音だと全部聞くのに11時間22分40秒かかります!音はちゃんとMediaPlayerなどで聞けることを確認しました。問題はPythonで、6万音ファイルを読み込んで配列にいれたとたん、メモリ不足で落ちることです。320MBのファイルでさえ、配列にいれる処理をPythonが内部でしているときに一時的にメモリを大量消費し、(いろいろ調整していないとはいえ)そのあたりが限界ぎりぎりセーフな感じです。
読み込んで、変数に格納する過程で大量に(一時的に)メモリを消費
320MBのファイルを読み込んでメモリ消費量を確認しました。
なんと、バイト配列からバイト列への結合(47行目の b''.join(バイト配列)でバイト配列(これは320MB)の約90倍もの作業領域を使って処理しています。内部的な作業領域が命令が完了するまで開放されずにいる感じです。この処理を3.8GBのファイルで行うと、すぐにPycharm(開発IDE:開発環境)ごと落ちます。*1これはよろしくありません。もう少し容量をおさえるとともに、安定してデータを扱う方法を確認(もしくはしくみを提供)する必要がありそうです。大量データを扱い、マシンの性能限界(レッドゾーン)近くで動く、それっぽい「いい感じ」の状況になってきました。(ちなみにボクのマシンはメモリ32GB MAXです)
(さらに追記)リソースを大量に消費する処理に気を付けてコーディングすれば、問題なく4GB近くのwavファイルを自由に操作できることがわかりました。ファイルをメモリ上に読み込み、各種情報へアクセスできるようにするまで、2秒程度でできるので、合格かと思います。
Pythonで番号指定で特定のサンプル音を再生できるようにしました。また、情報の持ち方についてもう少しシンプルにするよう調整中です。ちゃんと調整できたらGitHUBにアップすると思います。(さらに追記ここまで)
「音あつめ」もたいへんかも
今は、320MBでいっぱいいっぱいですが、アクセス方法も含めて容量など各種パラメータを調整していきます。枠組みがきまればあとはひたすら「仮面ライダー音あつめ」です。スタンウェイは比較的集めやすいと思いますが、ベーゼンドルファーとベヒシュタインの「いい音」集めはなかなか厳しそうです。全国スタジオ、ホールめぐりする余裕はとてもありません。。。
こんなサービス「ベーゼンドルファー東京レンタルスタジオに簡単・高音質な録音サービス「即レコ」を導入しました « ベーゼンドルファー・ジャパン」
(ピアノレンタルスタジオなどはいろいろある感じですね。。。)
みたいなのを地道に探すのもいいかもしれません。1時間2~3千円くらいだと、現実的かも。録音セッティング、収録、撤収作業含めても3時間あればOKだと思います。ピアノの音あて遊び(もちろん機械学習で!)をするにはちゃんとした「音」を集めないとおもしろくないですものね。。。
バイオリン等は奏者込じゃないと無理ですよねぇ。ストラディバリウスや名だたる銘器(しかも各種)は、どうやったら演奏してもらえる人(持っている人)を探せるのかわかりません。探せたとしても(スタジオ、できれば小さくてもそれなりの響きのあるホールで)演奏してもらうのはいくらかかるんでしょう。。。現実味がないけど、考えるのは楽しいです。
今年は「これ=計算機音楽」にかけているので、中途半端なことはしたくないのですが、短期で作成するとなると、出来合いの(しかも手元にある)音源を集めるしかないのかもしれません。
(さらに追記)高級なピアノのあるスタジオにいってパッと録音できるよう、ICレコーダが無性に欲しくなってきています。これはいけません。そんな凝り始めたらいつまでたってもおわりません。。。最高のピアノの音を集めたら次は最高のストリング、次は最高のギター。。。際限なくなることは間違いないです。中途半端に留める勇気も必要だと感じました。ああ、手元のサンプリング音がもうすこしちゃんとサンプリング(全音フルサンプリング)してあれば、生音を録りたいとはそんなにおもわないはずなのですが。。。(手元の音は聞けばきくほど貧弱です。)市販のサンプルとくらべてもKeppyさんのSteinwayピアノのサンプリングはとてもよいことがわかります。。。。う~ん演奏から音の断片を切り取って(当然単音ではなく和音や旋律の経過音の断片かと)学習素材にすることも考えよーっと。それなら、Googleライブラリが使えるし~(さらに追記ここまで)
助手・元祖?現役?〇〇疑惑
以前、助手からSF好きなら「萩尾望都」先生を読むべきと勧められました。元祖○○なら「竹宮恵子」先生の「風と木の詩」です。最近リバイバルとの話題がどこかに載っていました。最近の傾向なのですが、身近で話題になったことが1~2ヶ月くらいあとでネットで「最近流行なんだって!」ときくことが本当によくあります。まわりじゅう、流行とは無縁の面々ばかりですが、案外自分たちが世間に近づけた(もしくはミーハー傾向な)のかもしれません。
助手さん!早く「萩尾望都」先生の「銀の三角」貸してください。(どこかにあるはず。と言ってそれっきりですよ!)
キャンペーン効果!!
毎度有難うございます。目標20Hitまであと「3」となりました!!
*1:落ちたのは最初はバイト列→バイト配列だと予想していたのですが、まさかのバイト配列→バイト列の処理でした。大容量のb''.join操作は要注意です!