web-dev-qa-db-ja.com

ファイルをアナログモデムサウンドに変換するにはどうすればよいですか?

古いモデムのノイズのように再生されるように、ファイル(doc、Zip、pdfなどのファイル)をサウンドファイルに変換するソフトウェアを知っている人はいますか?その後、別のマシンで「再生」し、元の形式に復号化することができます。アナログサウンドに変換し、ヘッドフォンジャックを介して録音してから、別のマシンで再生するというアイデアです。

そうでない場合、誰かが私がそのようなことをするためのプログラムを作成する方法を知っている/アイデアを持っていますか?私はC#でかなりうまくコーディングできますが、どこから始めればよいのかよくわかりません。

3
Andreas Josas

これは本当にあなたがそれをどれだけ技術的にしたいかに依存します。妥当なデータレートを達成することに本当に関心がない場合は、 周波数シフトキーイング または パルス変調 アルゴリズムの1つなど、使用できる単純な変調方式が多数あります。 、PWMおよびPPMおそらく最も単純です。注意が必要なのは、電話回線の帯域幅が非常に限られているため、特定の周波数が通過しないことです。

トーンの合成はそれほど難しくないはずです。 .NETオーディオAPIを調べてください、私はそれらについてあまり知りません。選択した変調方式によっては、受信側での検出が最も難しい部分になります。パルス変調は、信号の半周期にわたる信号の平均絶対値を単純に測定し、しきい値を超えている場合はパルスと呼ぶことができるため、最も簡単に実行できます。このようにして、アナログ信号からデジタル信号に変換できます。デジタル信号は、送信したデータの実際のバイトにデコードして戻すことができます。

実際のモデムは、通信システムの詳細な知識、同期技術​​、エラー訂正に基づいて、かなり洗練されたコーディングを使用しています。したがって、56kbpsに近い場所に到達する、またはシステムが本物のように聞こえると考えるのは、おそらくかなり非現実的です。

帯域幅は約7000Hzしかないため、3500Hzを超える周波数を送信することはできず、立ち上がり時間と立ち下がり時間はかなり長くなります。現実的には、システムが本当にうまく機能し、本当にノイズのない接続があれば、約500bpsを取得できる可能性があります。

0
acjay

あなたが求めているのは非常に単純ですが、同時に厄介です-モデムのノイズを聞いたとき、それは実際にはデータそのものではなく、特別に設計されたプロトコルのデータです。

大きな誤解は、モデムのすべてのオーディオが最初の音のように聞こえるということです。実際、「データ」の実際の音は異なります。ログオンが常に同じように聞こえる理由は、ほとんどの場合、ほぼ同じ信号を送信しているためです。 /情報。

したがって、データをサウンドに変換する場合、おそらく最も簡単な方法は、MIDIなどの(ロスレス)より簡単な形式を選択するか、Codeplex /類似のサイトで midiコンポーネント を検索することです。ジョブ。

次に、固有の音符がいくつあるかはわかりませんが、少なくとも65025の異なる固有の音符(ピッチなど)があると思います-生の例として、ソースファイルを生のデータファイルとして開くことができます基本的に、各ヘクスダブルをノートにマップします。

したがって、基本的には、適切なヘッダー/フッターを指定してサウンドファイルを人為的に作成し、ファイルの各バイトを異なる音符としてエンコードしてパディングするだけです。さらに、必要に応じて、チェックサム/終了および開始文字を設定できます。

簡単ではないエンコーダーとデコーダーを作成する必要がありますが、これが不可能だとは思わないので、オーディオサウンドを生成できるはずです。 ...モデムのように聞こえるとは思えませんが、誰が知っているのでしょうか。

注意してください-私はサウンドエンジニアではありません... MIDIについて間違っている場合は、別の形式を選択してください...アイデアに基づいてこれを判断してください!

2
William Hilsum

MixW ソフトウェアを試してください。私たちHAMSは、すでにこのソフトウェアを無線でのファイル転送に使用しています。データを音声に変換し、通常の音声として無線で送信します。シンプレックスタイプの通信プロトコルであるため、速度は非常に遅くなります。

1
uss