- 締切済み
TAPIによるインターフォン
TAPIを利用してインターフォンを作成しようと考えています。 公衆回線利用が前提です。 単純な音声通話のみでなく、"*"や"#"などもフックしたいと考えています。 PCにV.34Qモデムを繋げば実現可能かと考えたのですが、 現在V.34Qモデムはほとんど売られていないようです。 USBモデムは色々ありますが、V.34Q対応と明記されているものは見つかりません。 USBモデムであれば、V.34Q対応を謳っていなくても通話及びフックは可能なのでしょうか? IPテレフォニーであれば実現可能らしいのですが、 その場合、相手もIPフォンやPCに限定されてしまうのでしょうか? (携帯や固定電話と通信可能なのでしょうか?) 以上、御回答お待ちしています
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
>では、通常のモデムで"*"や"#"が押されたことをどうやって検出したら良いでしょうか? >通話をしている途中で"*"や"#"が押されたことを検出して、 >PCに接続された機器にシグナルを送る必要があるのです。 *や#、0~9は、DTMF(ダイヤルトーンマルチフレケンシー)と言う物で相手側に送られます。 DTMFは単純に、ロートーンとハイトーンの2つの正弦波を合成した波形の音声信号を発信するだけです。 ロートーンは697、770、852、941Hz、ハイトーンは1209、1336、1477、1633Hzのそれぞれ4種類あり、4×4で以下の16種のダイヤルトーンを作れます。 1209 1336 1477 1633 HIGH 697 1 2 3 A 770 4 5 6 B 852 7 8 9 C 941 * 0 # D LOW *であれば、1209Hzの正弦波と941Hzの正弦波を重ねた音声信号になります。 で、このDTMFを検知するには、音声信号を入力して周波数成分を取り出し0~15のデジタル信号を出力する、DTMFデコードICを使えば、非常に簡単な回路で*や#が押されたのを検知できます。 なお、このICチップは、0~15のデジタルデータを入力すると、ハイトーンとロートーンを合成したDTMF信号を出力する、エンコードの機能も持っています。 で、このICチップでの工作が難しいのであれば、パソコンを用いて、ボイスモデムからリアルタイムで取り込んでいるWAVデータを、リアルタイムで周波数分析して、DTMFキーの0~15を求める事も可能でしょう(つまりパソコンに音声データを取り込めるのなら、パソコンで*や#を検出可能) なお、DTMFトーンの音声信号は、パソコンで簡単に作れます。確かキーボードのテンキー入力で、DTMFトーンを鳴らすフリーソフトがあった筈です。
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
余り詳しくないですが。 V.34QでなくてもV.70でも可能だと思われます。音声の送り方がちょっと違うだけですから。 と言うか「音声が送受出来れば良い」のなら、単純に「FAXモデム」なら何でもOKなんじゃないですか? どんな形状の、どんな規格のモデムでも、たいていはFAX送受信機能があると思います。FAXは「音声信号を用いた画像通信」なので、FAXが送受信出来るモデムなら音声も送受信出来ると思うのですが、どうでしょう? それよりも、問題は「モデムの外から音声信号を流し込んで、それをそのまま回線に乗せられるか?」と「回線に乗ってる音声信号をモデムの外に取り出せるか?」だと思います。 これは「モデムの規格とは無関係の話で、そういう音声信号の入出力回路がモデムに存在するかどうか、存在しないならモデムに付加回路として付け足す事が出来るか?」って話なので、別途、これも考慮する必要があると思います。
お礼
御回答有難う御座いました。 ちょっと的外れな補足をしてしまいました。 失礼しました。 http://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%87%E3%83%A0 によりますと V.70は対応機器間でのみ通信可能とあります 一方 V.34Qは公衆電話回線対応とあります。 現在の携帯や固定電話は皆V.70をサポートしていると考えても良いでしょうか? (よほど古い黒電話等は除いて、今、量販店等で店頭に並べられているものを 想像してくだされば構いません。携帯はG3クラスで結構です) その点がクリアできれば問題ないと思います。
補足
早速のお返事有難う御座います。 では、通常のモデムで"*"や"#"が押されたことをどうやって検出したら良いでしょうか? 通話をしている途中で"*"や"#"が押されたことを検出して、 PCに接続された機器にシグナルを送る必要があるのです。 また、出来ればwavファイルによる音声等も流せるようにしたいのです。 >「モデムの外から音声信号を流し込んで、 >それをそのまま回線に乗せられるか?」 >と「回線に乗ってる音声信号をモデムの外に取り出せるか?」だと思います。 http://www.microsoft.com/japan/win95/modules/unimov.htm によりますと ボイスモデムであれば、wavの録音/再生が可能ということなので モデムの外から音声信号(wav)を流し込んで回線に載せられるのではないかと 考えています。 ボイスモデムでない通常のFAXモデムでも可能なのでしょうか? (AD/DA変換はOSが自動的にやってくれるとか...) 宜しくお願いします。
お礼
詳しい情報有難う御座います。 TAPIを使うと*や#ボタンは簡単に認識できると考えています。 http://technet.microsoft.com/ja-jp/library/cc779639(WS.10).aspx (プッシュホンのボタンやその他の入力に基づき、オンデマンドで、情報をユーザーに FAX で送信します。) TAPI利用の場合でもICチップやFFT解析が必須なのでしょうか? 本当に必須ならばやむを得ません。実装するしかありません。 もし、TAPIで判定してくれるのであれば "車輪の再発明" は避けたいと考えます。 自分の趣味でやるわけではありませんので、 コストアップは避けたいです。 TAPIでそこまでの機能(ボタンの検出)が不能であるならば、 フリーで商業利用可能なライブラリを御存じないでしょうか? リアルタイムでFFT分析し、*や#を検出してくれるような... 当方、FFTのライブラリはありますし、 自作せよ と言われれば不可能ではないと考えますが, DTMFを検出した実績は御座いませんので (なんせ周波数も知らなかったくらいです) テスト・デバックのコストアップを恐れてしまいます。 宜しくお願いします。 追伸 よく考えてみたら、私がC/C++で組みたいだけで ここに投稿しており ジャンルを間違えた気がしてきました。 本来C/C++固有の話ではないので 今後は http://questionbox.jp.msn.com/qa5095205.html に移りたいと思います。 間違えてしまい 申し訳ありません。