« JavaでPCMファイル波形データ読み書き:メモ | トップページ | メモ:swingでサイズ指定&縦横レイアウト »

△フォルマント合成・時間差差分加算式

これは簡易フィルタによる手法です。倍音畳重による手法を
▲アンチフォルマントによる音声合成
に、倍音畳重とフィルタ を組み合わせた手法を
▲ハイブリッドフォルマント合成
に置きました。
さらに、子音を加え、喋り歌うものを
▲「ん」「な行」「ま行」と「が」音声合成試験
に置いてあります。

 フォルマント試験/時間差差分式

フォルマントF1/F2を指定して音を出す試験です。
右のパネル上で左クリックするとF1/F2が設定され音が出ます。 右クリックでF0が設定され音がでます。 [play/stop]で 音を出す/止めることができます。
基本波にフォルマント波長相当の時間差を与えたものと 基本波の差分を基本波に加えたもの・引いたものを音として出す極めて単純なものです。

この仕組みを発展させたサンプル sample5.mp3▲「ん」「な行」「ま行」と「が」音声合成試験

基本波の倍音構成をはF0.1~F0.6のテキストフィールドで0~100の範囲で指定できます。

F1,F2の差分の重ねかたの強さを基本波のn倍で指定できます。 単純な重ねではなく、+で共振とハイカット、-で共振とローカットとなります。 ただし、単純なフィルタなので厳密ではありません。

基本の波はsin波、ホワイトノイズ、矩形パルス波が選べます。
パルスの幅の割合は0~100で指定できます。

 出力データのフォルマント

このプログラムはappletとしてではなく直接ローカルにjar起動した場合、 波形データを wav形式で保存する機能が有効になります。
sin波ベースの「あ」「い」「う」とパルス波ベースの「い」「う」の wavに落としAdobe-Auditionでフォルマント表示させたものを載せます。
あまり良い形にはなっていません。とくに「い」はフォルマント間の 抑圧が殆どできていません。

い:パルス波ベース


う:パルス波ベース


あ:sin波ベース


い:sin波ベース


う:sin波ベース



|

« JavaでPCMファイル波形データ読み書き:メモ | トップページ | メモ:swingでサイズ指定&縦横レイアウト »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: △フォルマント合成・時間差差分加算式:

« JavaでPCMファイル波形データ読み書き:メモ | トップページ | メモ:swingでサイズ指定&縦横レイアウト »