二つのwaveファイルを合成するには?


  2008-03-04 09:15:58  No: 30020

いろいろと探したのですが資料が見つからず悩んでおります。

やりたいことは音声ファイルの重ね合わせです。
複数の音声を同時に鳴らす方法は見つかるのですが…
鳴らした音を録音するのではなく、データ的に処理して出力したいのです。
どなたかご存じありませんでしょうか?
よろしくお願いします。


うんと  2008-03-04 11:13:24  No: 30021

>データ的に処理して出力したいのです。

で、一つの音声ファイルでできて、二つでできない理由は?


もにゃ  2008-03-04 18:29:30  No: 30022

うーん。
おそらくwaveファイルを展開して、
ゴリゴリ合成していくしか道はないと思います。
win32apiレベルでは実装されてませんね。

>で、一つの音声ファイルでできて、二つでできない理由は?
二つではなく、n個の処理まで拡張すると省エネかな?
合成音を特殊なソフトなしで配布可能とか。
まぁすでに存在してますが。


  2008-03-04 19:24:31  No: 30023

失礼しました。説明不足ですね。
出力というのはファイルへの書き出しということです。
A.wavとB.wavの音声を重ねてC.wavに出力したいと考えています。
AなりBなりのデータをC.wavに追記していくことは出来そうなのですが、AとBの音声の重ね方がわかりません…
資料になりそうなサイトなどあればいいのですが。


nyr  2008-03-12 03:19:07  No: 30024

要は波形データなんだから、ガツガツ足していけばいいんじゃないでしょうか…
という方針の下、http://www.kk.iij4u.or.jp/~kondo/wave/  あたりを参考にしてみると、
Bit数を読んで、dataフラグを検索、dataフラグの後ろをBit数の分だけ読む。
そんでもって2つの値を合成して書き出せばいいんじゃないかと思いますが、どうでしょう?
試したことないですけど。


Mr.XRAY  URL  2008-03-12 07:40:07  No: 30025

音声,つまり,波形というのは,周波数分解できます.
これを,例えば周波数特性といいます.
いろいろな周波数が合成されてできているんですね.
オーディオ機器のカタログにも周波数特性が記載されています.
音声処理は通常この周波数空間で行います.
数学的には,数式で簡単なのですが,コンピュータで処理する場合は,
デジタルなので,それなりのアルゴリズムがあります.

音声処理,自己相関関数,線形予測法などの語句で調べてみてください.


Mr.XRAY  URL  2008-03-12 07:49:36  No: 30026

もののついでで,音声は1次元の周波数空間ですが,
私が関係する医療関係は画像なので,2次元の周波数空間を扱います.
したがって,処理にえらい時間がかかるんです.そこでいろいろなアル
ゴリズムが開発,研究されています.

画像の,例えば,ひとつのScanLineを考えると,その濃淡の変化を波形として
扱うわけですね.


うんと  2008-03-12 08:44:56  No: 30027

それはフーリエ展開のことを言ってるんでしょうけど、今回の質問に何の関連があるのですか?
nyr さんの言われるとおり、ただ足して出力するだけだと思います。


Mr.XRAY  URL  2008-03-12 09:21:18  No: 30028

>nyr さんの言われるとおり、ただ足して出力するだけだと思います。

ありっ!? それは大変失礼しました.
波形を扱うのは,みんなそうだと信じていました  (^_^;)


無関係  2008-03-13 03:17:37  No: 30029

> それはフーリエ展開のことを言ってるんでしょうけど、今回の質問に何
> の関連があるのですか?
> ただ足して出力するだけだと思います。

↓ 足して出力するだけ。
http://www.geocities.co.jp/AnimalPark-Shiro/1620/ft/1.html


Mr.XRAY  URL  2008-03-14 17:23:16  No: 30030

そういえば,DirectSoundというAPIがあるようです.
これも時間軸の振幅を足すだけかな? (笑)


通りすがり  2008-03-14 18:16:38  No: 30031

「SoundEngine」などの波形編集ソフトなどでも同様ですが
元データ(.wavファイル)からコーデックを元にメモリー上に
展開して、その後波形データとしてからでないと単に足すだけでは
ダメだと思いますが・・・
(.wavには非圧縮やコンテナ形式でADPCM、MP3など各種の形式が入ります)


通りすがり  2008-03-14 18:45:16  No: 30032

ついでに、参考になるかな...

Windowsサウンドプログラミング—音の知識×プログラミングの知識 (単行本)  田辺 義和 (著) 

VC++がサンプルですが、Windows/APIなどを使っているのでいいかも・・・


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加