音声のピッチ変更

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
yuno

音声のピッチ変更

#1

投稿記事 by yuno » 15年前

ご無沙汰してます
いま、音声のピッチ変更を必要とするプログラムを組んでいるのですが
DXライブラリ には、音声関係はもともと簡易なものしかなく
WEBで検索してみてもなかなか方法が分かりません……
少々難しくなってもよろしいので
誰かご教授願います

以下は制作環境です
OS:Windows XP
ソフト:VS 2005 C++
ライブラリ:DXライブラリ

やっくん

Re:音声のピッチ変更

#2

投稿記事 by やっくん » 15年前

ピッチ変更とは周波数を変化するってことでしょうか?
音声に詳しくないのでわかりませんが、以下のような関数を用いるのはどうでしょう?
的外れでしたら申し訳ないです(^^;

【DXライブラリより】
// メモリに読み込んだWAVEデータの再生周波数を設定する
int SetFrequencySoundMem( int FrequencyPal, int SoundHandle ) ;
// メモリに読み込んだWAVEデータの再生周波数を取得する
int GetFrequencySoundMem( int SoundHandle ) ; 画像

Yuno

Re:音声のピッチ変更

#3

投稿記事 by Yuno » 15年前

確かにそれでもできることはできますが
再生速度を変えずに…ということなので苦戦しています

流れとしては
音声ファイルのピッチ変更

長さに合わせて伸縮

それぞれのファイルをつなげる

VOCALOIDとかUTAUみたいなやつですね
それの会話版を作ろうとしてるんですが……

あ、それと名前ひさしぶりなので間違えてました(T_T)
yunoではなくYunoでした
すみません

やっくん

Re:音声のピッチ変更

#4

投稿記事 by やっくん » 15年前

申し訳ありません;
前に音声データをテキスト形式で少し弄ったくらいしかの知識しかないので誰かにバトンタッチします。

あたっしゅ

>誰かご教授願います

#5

投稿記事 by あたっしゅ » 15年前

「教授(きょうじゅ)」じゃなくて「教示(きょうじ)」
参考:http://www.tt.rim.or.jp/~rudyard/torii009.html

あたっしゅ

Re:音声のピッチ変更

#6

投稿記事 by あたっしゅ » 15年前

再生周波数を変えただけだと、低くしたときは再生時間が長くに、速くした時は再生時間がみじかくなる。
たぶん、それでは、不満なのだろう。
そこで、「高速フーリエ変換(Fast Fourier Transform, FFT)」とその逆変換。
「FFT ソース」で検索すれば、いっぱい、FFT のソース・ファイルが公開されているのが出てくる。
具体的に、どう使うかは、わたしにはわからないので、ほかの人に聞いて。


# レスをオフ書きしているうちに、話が進んでいるが、そのまま、書き込む。

Yuno

Re:>誰かご教授願います

#7

投稿記事 by Yuno » 15年前

誤字指摘どうも
なるほど、そして俺は何で誤字の勉強をしているwww

Yuno

Re:>誰かご教授願います

#8

投稿記事 by Yuno » 15年前

ググって一番で引っかかったのが
http://www5.airnet.ne.jp/tomy/cpro/sslib8.htm
だったけど
使い方いまいちわからないです

Yuno

Re:>誰かご教授願います

#9

投稿記事 by Yuno » 15年前

http://floor13.sakura.ne.jp/book03/book03.html
ここにおいてある
chapter12.zipの中のex12_4フォルダのファイルは使えませんか?

実用例っぽいので……
ただ、このファイルは.cなんですがC++でもうまくコンパイルできますかね……

MNS

Re:>誰かご教授願います

#10

投稿記事 by MNS » 15年前

一応、規約上の注意として、
マルチポストはきちんと明記しないと駄目ですよ。

住所特定反対

Re:音声のピッチ変更

#11

投稿記事 by 住所特定反対 » 15年前

マルチポストすんな
答える必要なし

Yuno

Re:音声のピッチ変更

#12

投稿記事 by Yuno » 15年前

すみません、一つにまとめればよかったです

softya

Re:音声のピッチ変更

#13

投稿記事 by softya » 15年前

>すみません、一つにまとめればよかったです
そうお思いなら利用規約に従われていかがでしょうか。

438番

Re:音声のピッチ変更

#14

投稿記事 by 438番 » 15年前

なんだか荒れてますね

質問を見る限りやりたいことはサンプリングなどの信号処理なのではないでしょうか
もしそうならDXライブラリは使わなくても出来ると思います

信号処理ならFFTの他にもDFT(離散フーリエ変換)やDCT(離散コサイン変換)
等も一緒に勉強した方が判りやすい気もします

>使い方いまいちわからないです
いきなりC言語のソースを見ても難しいですよ
まずは元の数式の方を見て理解するのが一番早いですが
これについては数学の知識が必要です
最低限三角関数・微分・積分の知識が必要になります
物理で波動やスペクトルを習ったことがあればまだ親しみやすいかもしれません
数学のレベルとしては数Ⅲ程度では話にならないほど難しいかと思います

もし数学がわからないというなら
三角関数、微分・積分、オイラーの公式、フーリエ級数、ラプラス方程式、フーリエ変換
このあたりから勉強すると良いかと

ボーかロイドなどは"素片接続法"や"HMM合成法"などで検索すれば詳しいサイトが出てくると思いますよ
(この方法で合成していると聞いたことがあります、うろ覚えですみません
 また、ここで書くには非常にしんどいので検索していただいたほうが効率がよいと思います)

閉鎖

“C言語何でも質問掲示板” へ戻る