音声のピッチ変更
Re:音声のピッチ変更
ピッチ変更とは周波数を変化するってことでしょうか?
音声に詳しくないのでわかりませんが、以下のような関数を用いるのはどうでしょう?
的外れでしたら申し訳ないです(^^;
【DXライブラリより】
// メモリに読み込んだWAVEデータの再生周波数を設定する
int SetFrequencySoundMem( int FrequencyPal, int SoundHandle ) ;
// メモリに読み込んだWAVEデータの再生周波数を取得する
int GetFrequencySoundMem( int SoundHandle ) ;
音声に詳しくないのでわかりませんが、以下のような関数を用いるのはどうでしょう?
的外れでしたら申し訳ないです(^^;
【DXライブラリより】
// メモリに読み込んだWAVEデータの再生周波数を設定する
int SetFrequencySoundMem( int FrequencyPal, int SoundHandle ) ;
// メモリに読み込んだWAVEデータの再生周波数を取得する
int GetFrequencySoundMem( int SoundHandle ) ;

Re:音声のピッチ変更
確かにそれでもできることはできますが
再生速度を変えずに…ということなので苦戦しています
流れとしては
音声ファイルのピッチ変更
↓
長さに合わせて伸縮
↓
それぞれのファイルをつなげる
VOCALOIDとかUTAUみたいなやつですね
それの会話版を作ろうとしてるんですが……
あ、それと名前ひさしぶりなので間違えてました(T_T)
yunoではなくYunoでした
すみません
再生速度を変えずに…ということなので苦戦しています
流れとしては
音声ファイルのピッチ変更
↓
長さに合わせて伸縮
↓
それぞれのファイルをつなげる
VOCALOIDとかUTAUみたいなやつですね
それの会話版を作ろうとしてるんですが……
あ、それと名前ひさしぶりなので間違えてました(T_T)
yunoではなくYunoでした
すみません
>誰かご教授願います
「教授(きょうじゅ)」じゃなくて「教示(きょうじ)」
参考:http://www.tt.rim.or.jp/~rudyard/torii009.html
参考:http://www.tt.rim.or.jp/~rudyard/torii009.html
Re:音声のピッチ変更
再生周波数を変えただけだと、低くしたときは再生時間が長くに、速くした時は再生時間がみじかくなる。
たぶん、それでは、不満なのだろう。
そこで、「高速フーリエ変換(Fast Fourier Transform, FFT)」とその逆変換。
「FFT ソース」で検索すれば、いっぱい、FFT のソース・ファイルが公開されているのが出てくる。
具体的に、どう使うかは、わたしにはわからないので、ほかの人に聞いて。
# レスをオフ書きしているうちに、話が進んでいるが、そのまま、書き込む。
たぶん、それでは、不満なのだろう。
そこで、「高速フーリエ変換(Fast Fourier Transform, FFT)」とその逆変換。
「FFT ソース」で検索すれば、いっぱい、FFT のソース・ファイルが公開されているのが出てくる。
具体的に、どう使うかは、わたしにはわからないので、ほかの人に聞いて。
# レスをオフ書きしているうちに、話が進んでいるが、そのまま、書き込む。
Re:>誰かご教授願います
http://floor13.sakura.ne.jp/book03/book03.html
ここにおいてある
chapter12.zipの中のex12_4フォルダのファイルは使えませんか?
実用例っぽいので……
ただ、このファイルは.cなんですがC++でもうまくコンパイルできますかね……
ここにおいてある
chapter12.zipの中のex12_4フォルダのファイルは使えませんか?
実用例っぽいので……
ただ、このファイルは.cなんですがC++でもうまくコンパイルできますかね……
Re:音声のピッチ変更
なんだか荒れてますね
質問を見る限りやりたいことはサンプリングなどの信号処理なのではないでしょうか
もしそうならDXライブラリは使わなくても出来ると思います
信号処理ならFFTの他にもDFT(離散フーリエ変換)やDCT(離散コサイン変換)
等も一緒に勉強した方が判りやすい気もします
>使い方いまいちわからないです
いきなりC言語のソースを見ても難しいですよ
まずは元の数式の方を見て理解するのが一番早いですが
これについては数学の知識が必要です
最低限三角関数・微分・積分の知識が必要になります
物理で波動やスペクトルを習ったことがあればまだ親しみやすいかもしれません
数学のレベルとしては数Ⅲ程度では話にならないほど難しいかと思います
もし数学がわからないというなら
三角関数、微分・積分、オイラーの公式、フーリエ級数、ラプラス方程式、フーリエ変換
このあたりから勉強すると良いかと
ボーかロイドなどは"素片接続法"や"HMM合成法"などで検索すれば詳しいサイトが出てくると思いますよ
(この方法で合成していると聞いたことがあります、うろ覚えですみません
また、ここで書くには非常にしんどいので検索していただいたほうが効率がよいと思います)
質問を見る限りやりたいことはサンプリングなどの信号処理なのではないでしょうか
もしそうならDXライブラリは使わなくても出来ると思います
信号処理ならFFTの他にもDFT(離散フーリエ変換)やDCT(離散コサイン変換)
等も一緒に勉強した方が判りやすい気もします
>使い方いまいちわからないです
いきなりC言語のソースを見ても難しいですよ
まずは元の数式の方を見て理解するのが一番早いですが
これについては数学の知識が必要です
最低限三角関数・微分・積分の知識が必要になります
物理で波動やスペクトルを習ったことがあればまだ親しみやすいかもしれません
数学のレベルとしては数Ⅲ程度では話にならないほど難しいかと思います
もし数学がわからないというなら
三角関数、微分・積分、オイラーの公式、フーリエ級数、ラプラス方程式、フーリエ変換
このあたりから勉強すると良いかと
ボーかロイドなどは"素片接続法"や"HMM合成法"などで検索すれば詳しいサイトが出てくると思いますよ
(この方法で合成していると聞いたことがあります、うろ覚えですみません
また、ここで書くには非常にしんどいので検索していただいたほうが効率がよいと思います)