tag:blogger.com,1999:blog-5915795376927643442.post4244199742086608852..comments2016-04-04T16:33:15.463+09:00Comments on handの日記: 音声合成(3)Unknownnoreply@blogger.comBlogger8125tag:blogger.com,1999:blog-5915795376927643442.post-85640762186550259162016-04-04T16:33:15.463+09:002016-04-04T16:33:15.463+09:00今更ながらですが、Rosenberg波を作るWave関数のところ、
t1*t2でなくてt1+t2です...今更ながらですが、Rosenberg波を作るWave関数のところ、<br />t1*t2でなくてt1+t2ですね。<br />これ面白いですね。色々やってみたいです。pochinoreply@blogger.comtag:blogger.com,1999:blog-5915795376927643442.post-81746163181832334942016-03-18T19:13:24.193+09:002016-03-18T19:13:24.193+09:00ありがとうございます!ありがとうございます!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5915795376927643442.post-9564907493954601762016-03-17T11:32:51.124+09:002016-03-17T11:32:51.124+09:00子音 n の発音が「ん」の波形から母音の波形に遷移する形で作ってあるので、
その辺の処理を引用すれば...子音 n の発音が「ん」の波形から母音の波形に遷移する形で作ってあるので、<br />その辺の処理を引用すればたぶんできるかと。何年も前なので、うろおぼですけれど。handhttps://www.blogger.com/profile/07086574306555004459noreply@blogger.comtag:blogger.com,1999:blog-5915795376927643442.post-31261217433817345222016-03-17T05:03:22.745+09:002016-03-17T05:03:22.745+09:00「ん」の波形をつくる場合は、どうすればよいのでしょうか?「ん」の波形をつくる場合は、どうすればよいのでしょうか?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5915795376927643442.post-88928513579352250442014-06-13T21:21:01.600+09:002014-06-13T21:21:01.600+09:00お世話になります。
環境は、VC++で間違い無いです。
勝手にコメントさせてもらいましたが、
よく...お世話になります。<br />環境は、VC++で間違い無いです。<br /><br />勝手にコメントさせてもらいましたが、<br />よくよく考えてみれば、<br />おそらく私の環境で動かないだけでしょうね……。<br /><br />(VC++でfopenを使おうとすると<br /> 「危ないから代わりにfopen_sを使え!」<br /> とエラーを吐くのでコンパイルが通らないorz)<br /><br />処理がおかしい、というのはノイズ?が乗っている事、でしょうか?(発振してる?)<br />デジタル信号処理は初めてなので、<br />IIRフィルタの事など、まだ分からない事も多いですが、<br />ここ数日暇を見てコードを読ませてもらっています。<br /><br />しかし、読むだけだと今一分からないので、<br />自分でもコードを書いてみる……予定です^^通行人noreply@blogger.comtag:blogger.com,1999:blog-5915795376927643442.post-21927447530979833912014-06-11T00:37:43.865+09:002014-06-11T00:37:43.865+09:00コメントありがとうございます。
そちらさまの制作環境はVC++でしょうか?
ともあれ、記述は確かに...コメントありがとうございます。<br /><br />そちらさまの制作環境はVC++でしょうか?<br />ともあれ、記述は確かにそのように直すべきですね。<br /><br />たぶんIIRフィルタの処理はちょっとおかしいような気はします。<br />音声合成技術の論文でこのあたりがわからなかったので、<br />「第Nフォルマントでフィルターした波形」を単純に加算しています。<br /><br />おそらく各フォルマントを一度にフィルターする仕組みを入れればいいと思いますが。。。<br />handhttps://www.blogger.com/profile/07086574306555004459noreply@blogger.comtag:blogger.com,1999:blog-5915795376927643442.post-53116680080863789032014-06-11T00:32:45.392+09:002014-06-11T00:32:45.392+09:00(コメ欄汚しすみません)
書き忘れ
#include
を
#define _USE_MATH_DE...(コメ欄汚しすみません)<br />書き忘れ<br />#include <br />を<br />#define _USE_MATH_DEFINES<br />#include <br />に書き換え。<br /><br />環境はWin7 Visual C++ 2012 の場合です。<br />(当然input.txtファイルは.cppファイルと同じディレクトリに置く。)通行人noreply@blogger.comtag:blogger.com,1999:blog-5915795376927643442.post-16034994174957912842014-06-11T00:26:12.280+09:002014-06-11T00:26:12.280+09:00ちょっと音声合成について気になったので調べて見たらこのブログが……
fopenをfopen_sに書...ちょっと音声合成について気になったので調べて見たらこのブログが……<br /><br />fopenをfopen_sに書き換えたりするのに多少てこずりましたが、<br /><br />何とかwavを生成できました。<br /><br />ちょっと発音が濁っていたりと、最近のVOCALOIDなど<br /><br />とは比べるのは酷ですが、<br /><br />キチンと聞き取る事ができて感動です。<br /><br />お礼ついでに、他にも動かしてみたい人のために、<br /><br /> if ((file_wave = fopen(filename, "wb")) == NULL)<br /><br /> if ((file_script = fopen(filename, "rb")) == NULL)<br /><br /> if ((file_script = fopen(filename, "r")) == NULL)<br /><br />を<br /><br /> fopen_s(&file_wave,filename, "wb");<br /> if ( file_wave == NULL)<br /><br /> fopen_s(&file_script,filename, "rb");<br /> if ( file_script == NULL)<br /><br /> fopen_s(&file_script,filename, "r");<br /> if ( file_script == NULL)<br /><br />と書き換え、<br /><br />sscanf(str,"%lf %lf %d",&vol,&basefc,&basetic);<br /><br />sscanf(str,"%s %lf %d",word, &fc, &tic);<br /><br /><br />を<br /><br /> sscanf_s(str,"%lf %lf %d",&vol,&basefc,&basetic);<br /><br /> sscanf_s(str,"%s %lf %d",word,4*sizeof(char), &fc, &tic);<br /><br />と書き換えればおkですね。通行人noreply@blogger.com