マイクの入力音声を変更して、ロボットや変な男の声のようにするアプリを書きたいのですが、変更された音声を IM ソフトウェアやゲーム クライアントなどのすべてのアプリケーションに送信できるようにする必要があります。どの技術を取り上げるべきですか?Windows WaveForm API? ダイレクトX? オーディオドライバー?
どうもありがとうございました!
C# (.NET) で Skype 経由で動作するボイス チェンジャーを作成する方法を説明する MSDN Coding4Fun の記事があります。完全なソース コードも、CodePlexでプロジェクトとしてホストされています。さらに、このプロジェクトは適切なレベルの抽象化を含むNAudioフレームワークに基づいているため、(Skype 経由でストリーミングするのではなく) オーディオを使って別のことを行うのはかなり簡単です。とにかく、これはかなり完全な (そして安定した) 例です。私の意見では、チェックする価値があります。
開発に C++ やその他の言語を使用したい、または使用する必要がある場合、このプロジェクトは少なくともその方法についていくつかのアイデアを提供するはずです。それでも、.NET を使用できる場合は、幸運だと思います。
ロボットの音声は、多くの場合、リングモジュレーター効果を使用して行われ、音声を正弦波と混合します。これは簡単です。または、ボコーダーエフェクトを使用して、音声を長方形などの他の波形に変調するのは少し難しいかもしれません。エフェクトがどのように機能するかを読み、それらがどのように聞こえるかを確認できるプログラムを入手してください(Audacityはリングモジュレーターで機能します。ボコーダーを見つけて使用するのは少し難しいかもしれません)。次に、それがどのように行われるかを読むか、処理を行うライブラリを入手します。
VSTi または DXi プラグインのサポートを検討しています。
無料でも、ボコーダーとしても機能するものがたくさんあります。
ホスト アプリケーションを作成するだけです。ここを見てください:)
特にモバイルアプリの場合、これは素晴らしいアイデアです。
私はおそらく、.wav ファイルを入力として使用してオフラインで開始し、エフェクトを思いどおりに動作させるでしょう。これには任意の高水準言語を使用できますが、おそらく C/C++ に適切にマップされる何かが必要になるでしょう。
製品版に関して言えば、私はネイティブになり、これを C または C++ で行います。リアルタイムのオーディオ処理に高速なものが必要で、配布用の .net などへの依存を避けたいと考えています。(私は .net に反対しているわけではありません。サーバーや企業内の配布には最適ですが、シュリンク ラップ ソフトウェアの依存関係として使用することにあまり熱心ではありません。)
Windows DirectShow は魅力的なオプションです。ボイス モーファーをダイレクト ショー フィルターとして実装していれば、マルチメディアでも興味深い効果を得ることができます。
あなたが探しているのはボコーダーです。上記のテクノロジのいずれかにボコーダー効果があるかどうかはわかりませんが、最も可能性が高いのは DirectX です。
このサンプルアプリを試してみてください。役に立つと思います。リンク