Scipy-オーディオ処理


14

オーディオ信号処理に適したツールを探しています。例:音声と音楽の分析、自動言語識別など。

Scipyライブラリはオーディオ処理のための機能を提供しますか?オーディオ信号処理に適したツールはありますか?

このためのツールを提案していただけますか?


1
はい、scipyはこの種のことを行うためのインフラストラクチャを提供しますが、より有用な回答を得るには(特に[scipy]よりも優れたツールがあるかどうかに答えるために)後のことをもう少し具体的にする必要があります)。
A_A

1
リアルタイムかオフラインか?
エンドリス

オフライン。音声/音楽の分類を探しています。
user1147663

1
ScipyとNumpyは、データのリアルタイム処理とオフライン処理の両方に優れたツールを提供します。CythonまたはCtypesと組み合わせて(私はCythonアプローチを好む傾向があります)、他のライブラリーに適合させることができない場合、Cで記述された低レベルの高速操作でnumpy配列を操作するのは簡単です。
ヘンリーゴマーサル

1
MATLABに欠けていることの1つは、配列の原点を1以外に定義できることです。そのため、FFTの出力のDC値は、ビン#0ではなくビン#1にあるはずです。MATLAB(またはOctave)については、他にもおかしなことがあります。
ロバートブリストージョンソン14年

回答:


9

個人的には、Pythonは最良の選択肢の1つであり、オーディオ識別の分野でいくつかの仕事をしました。例えば、騒々しい音声記録から鳥を自動的に識別するための私のソフトウェア:Ornithokritesをチェックすることを歓迎します。このプログラムはニュージーランド環境保護省によって使用されており、彼らはそれについて満足しています。この例に基づいて、Pythonを使用するいくつかの利点を指摘します。

  1. 大量のライブラリを提供する、巨大で急速に発展しているコミュニティ。SciPyは、信号処理のための多数の方法を提供します(Matlabほどではなく、成熟しており、許可されています)。ただし、SciPyは最も重要なものの1つですが、あなたの努力を助けることができる数百のうちの1つにすぎません。見つけたAubioは音楽分析に最適。音声と音楽の認識では、Yaafeが抽出できる多数のオーディオ機能を確実に使用できます。
  2. それは無料です!学界を離れると、Matlabがかなり高価であることがすぐにわかります。そして、たとえそれを買う余裕があったとしても、あなたの視点のユーザーはこの依存関係に満足しません。たとえば、言及された環境省は独自のソフトウェアを受け入れません。
  3. 識別には多くの場合、機械学習が必要であり、Pythonにはすばらしいツールキットsklearnがあります。それは最先端のライブラリであり、使いやすいです。見て Kaggle大会 (機械学習)をし、プログラマがPythonとsklearnを使用しているどのように多くのトップを確認してください。
  4. 「ビッグデータ」を管理できます。ネットワーク化された膨大な録音データベースに対して分析を実行したい場合、Pythonは一連のツールを十分に確立しています。Matlab / OctaveがHadoopなどと簡単に接続できないと思いますが、間違っている場合は修正してください。Rはこの領域を改善します。
  5. インターフェースと言えば、プログラムをWebサイトと簡単にインターフェースできます。これが私がOrnithokrites(鳥の認識)を管理する方法です。プログラムはAmazon Web Servicesクラウドコンピューティングサービスで実行されます。必要なすべてのライブラリのインストール手順を必ずしも実行したくない他の人にソフトウェアを提供したい場合に最適です。

2番目の選択肢はRです。Pythonほどの機能は豊富ではありませんが、多数の便利なライブラリがあります(たとえば、seewaveを確認してください)アプリケーションのをしてください)。これらをWindowsとLinuxの両方にインストールするのは簡単です。これは、他の人にプログラムを使用してもらいたい場合に重要です。ただし、私の経験では、Rでの高性能コンピューティングはより困難です。処理と識別を大量に行う必要がある場合に注意する必要がある重要なことです。

Pythonでの音楽分類の例:

Pythonを使用した書籍作成機械学習システムには、音楽分類に関する章があります

その他のツール(決して完全ではないリスト):Python in Music


2

Pythonはこのための人気のある言語であるように思われます。というのは、いくつかの優れたツールセットは、...という事実に基づいています。

アカデミアでは、このタイプの作業がMatlabで行われるのが非常に一般的です。これは、多くの強力なツールキット(信号処理、並列コンピューティング、グラフ作成、データベースユーティリティ、機械学習、AI)をプローブしやすいIDEにまとめるためです。ただし、費用がかかり、いくつかの欠点があります(アプリケーションの設計とパフォーマンスの点で最高のプログラミング言語ではないため、主にプロトタイプ作成ツールですが、Cにコンパイルできます)。Octaveは無料の代替手段ですが、使用していないため、信号処理ツールまたはソフトウェア自体の品質を保証することはできません。


このための素晴らしいライブラリはgithub.com/worldveil/dejavuです。Python、オープンソース、MITがライセンスを取得し、音声認識と指紋認証を行います。
lollercoaster

scipyエコシステムには、MATLABの多くの機能があります。
ダーレイソンロドリゲス

2

pyAudioAnalysisを確認することもできます。これは、パターン認識用のオープンライブラリといくつかのオーディオ機能の実装を組み合わせたものです。pyAudioAnalysisで実装されたいくつかのサンプルアプリケーションは、あなたが面白いと思うかもしれません:

  • 無音除去
  • 話者日記
  • SVM、kNNなどを使用したセグメント分類(およびトレーニング)
  • 共同セグメンテーション分類(HMMを使用)
  • オーディオサムネイル
  • オーディオコンテンツの視覚化

0

pythonバインディングを含むEssentiaオーディオ分析C ++ライブラリを使用できます。python / scipy環境のすべての利点に加えて、Essentiaに付属する多くのオーディオ/音楽分析アルゴリズムを利用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.