3

ユーザーが話している個々の人の話を録音し、その録音をデバイスに保存し、各レコードに話した人の名前をタグ付けできるアプリを構築しようとしています。次に、検出モードがあります。このモードでは、誰かを記録し、その人がローカル データベースに存在するかどうかを知ることができます。

まず第一に、これは可能ですか?私は iOS 開発に非常に慣れていないため、利用可能な API にあまり慣れていません。

さらに重要なことに、着信音声とローカル データベースにあるレコードを関連付けるには、どの API (理想的には無料) を使用する必要がありますか? これは Shazam のように動作するはずですが、一致を探しているデータベースがはるかに小さいため、はるかに単純です。

4

1 に答える 1

4

あなたがiOS開発に慣れていない場合は、コアアプリから始めて音声を録音し、プロファイル/名前を手動で選択して添付し、後で話者認識部分について心配するようにします.

明らかに、認識側には 2 つのオプションがあります。他の誰かの音声認証/話者認識ライブラリ (おそらく C または C++ になります) を結合するか、独自のものを作成してみることができます。

あなたのアプリを使う人は何人ですか?基本的なものを自分で作成できるかもしれません。それが男性と女性の違いである場合は、音声の FFT スペクトル分析を実行して、周波数のピークがどこにあるかを把握することで、おそらくそれを把握できます。明らかに、異なる音素を発音するために使用される周波数は多少異なるため、かなり似たように聞こえる 2 人の一般的なケースを解決するのはおそらく難しいでしょう。一連のテキストを使用してシステムをトレーニングし、ある種の度数分布モデルを構築する必要があります。クラスタリングなどを試みることもできますが、かなりの数の数学にすぐに出くわすことになります (ガウス混合モデルなど)。これを行うライブラリ/プロジェクトがあります。これを matlab から移植できる場合があります。たとえば、次のようになります。https://github.com/codyaray/speaker-recognition

すぐに使えるものを使いたい場合は、Objective-C から呼び出すのが比較的簡単なため、mistral のような単純な C ライブラリを使用します。

SpeakHereサンプル コードを使用すると、オーディオの録音と再生を開始できます。

また、リストから名前を選ぶだけで時間を節約できるよりも、ユーザーがアプリをトレーニングしてそれらを認識するのに時間がかかる可能性があります。彼らの声をある種のセキュリティパスポートのようなものにするつもりでない限り、気にする価値はないかもしれません.

于 2012-08-19T17:39:46.060 に答える