2016-10-29 20 views
1

私は個人的な研究プロジェクトに取り組んでいます。波形の比較

私の目的は、サウンドを認識し、それがIPAに属しているかどうかを、自分のデータベースの波形と波形を比較することによって識別できるようにすることです。私はMathematica、SciPy、PyBrainにいくつかのスキルを持っています。

最初の段階では、私は英語(米国)音標のみを使用しています。 私はオンラインで見つけた英単語音声ファイルのテストバンクを持っています。ここでのトリックは

私は別の音節に対応する波形に分離したいと思っています。これは学習アルゴリズムをとるでしょう。だから、「私はリンゴが好きです」という言葉を、その文を構成する音節の波形に切り詰めます。

各波形は、英語PAの波形と比較されます。私はこの部分をどうやって行うのか分からない。 Praatを使用して波形を検出し、波形の画像をキャプチャし、画像解析(これは楽しいことです)でデータベースに保存された波形と比較します。

ここでのダメージは、Praatが波形ファイルを自動的に生成し、それを音節間で自動的に波形チャンクにする方法を知らないことです。論理的には、学習アルゴリズムのテストケースを準備し、それを行うよう教えるだけです。

波形のイメージを必要とする代わりに、高速フーリエ変換でこれを行い、エラーのx%以内の2つのfftを比較してもよろしいですか?

アドバイスやご意見はありがとうございます。あなたのお時間をありがとうございました。

答えて

1

あなたはPraat scriptingしようとすることができます。

ちょうどFFTを使用すると、ひどい結果が得られます。非常に長い特徴ベクトルは、それをセグメント化して実行することは本当に困難です。これは、1つの音節の数千ポイントです。いくつかの深い神経ネットワークはそれに対処することができますが、それはあなたがそれらを適切に設計し、巨大なトレーニングセットを提供することを前提としています。ニューラルネットワークを使用する利点は、それらが "生データ"からあなたのための機能を構築できることです(そして私はfftも "生"と考えています)。しかし、サウンドを扱うときには、それほど必要ではありません。手動で機能をエンジニアリングすることができます。音の場合、科学はどのような種類の「特徴」音があるかを非常によく知っています。

Yaafeのようなライブラリを使用してこれらの機能を計算できます。あなたがC++やPythonでそれをやっていなくてもチェックすることをお勧めします - 私が提供したリンクはそれらを計算するための式も提供します。私はそれらのいくつかを私のkiwi classifierで使った。

別の良いアプローチはscikit-talkboxから得られます。これは正確に必要なツールを提供します。

+0

私は本当に入力を感謝します! 今日のMatlabでfftを使ってみたところ、本当に醜いベクトルでした。私はリンクを調べるつもりです。 私は実際にPythonにもっと慣れています。私はリンクを調べます。これは素晴らしいスタートです。私は現場でいくつかの論文を探し、音の分析のためにfftを使用するのは... featです。 これは私がウサギの穴にいた間、私が終わったところである: https://core.ac.uk/download/pdf/35379497.pdf 私はちょうど今、トークボックスに取得しています(あなたのおかげで)とそれはこれまでのところ非常に有望に見えます。 – Yarou

+1

次の月は文献を見直すだけです:)。私はそれがあなたの後ろではないことを知っていますが、あなたはもう一方の方法を試してみることができます:スピーチからテキストまで、そして単純に音節を抽出してください。既存のライブラリをPythonで数時間で修正することができます。このようにして、音声認識に入れられたすべての作業を利用し、必要なものを得るために正規表現を適用することができます。あなたは非常に良い結果を得るべきです。 –

1

私はPraatについて本当に知りませんが、あなたのプロジェクトは非常にクールで興味深いものです。私はあなたのプロジェクトに接続されているかもしれない音を使って、自動車モーターの障害検出に関する経験を持っています。複数の研究論文がそれを証明したため、Neural NetworksとSVMを使って分類を行いました。だから私は私が選んだ方法について疑いがなかった。だから、私のアドバイスは多分あなたがそれについて研究し、いくつかの論文を読むべきです。このような質問があるときは、本当に役に立ちます(代わりに使用できますか、最適なソリューションを使用していますか?など)。と幸運は素晴らしいプロジェクトです:)

+0

音でエンジンの不具合を検出しています。 Lukaszさんから大きなインプットが寄せられました。 ありがとうございます!私はちょうどそれを行い、Google Scholarに関するいくつかの論文を検索し、Lukaszと共有したリンクのような多くの情報を見つけました。 変更された変換関数が実行可能であり、堅実な結果(Discrete Tchebichef Transform)を生成することを示していますが、トレーニングプロセスが非常に長くなり、最終的に大規模なベクトルに乱雑になる可能性があります。 あなたは質問を非常に正しい方向で研究しており、質問の要素は不可欠です。 – Yarou