AquesTone打ち込みTips その1

■ベロシティ値
打ち込みだと気づかないかもしれませんが、AquesToneはノートオンのベロシティに反応します。この変化は、音量が大きくなるというより、発声の速さの変化がメインとなります。
まずはデフォルトとしてベロシティは64くらいに設定して、子音が聞き取りにくかったり、ゆっくり歌うときは、ベロシティの値を下げていって調整します。逆に、早いパッセージの場合は値を大きくします。

■音符の間隔
基本は、レガートのように連続するより、多少間隔をあける(ノートオフから次のノートオンまでの時間をあける)のが基本となります。
レガートで弾くともっとも急に次の子音へ変化します。(本来のレガートのイメージと異なりますね)
動作的には、ノートオフにより次の子音への変化が開始されます。
そこで、子音をよりはっきりさせるときには、間隔をよりあけると良いでしょう。
なお、ノートオフ時の次の子音への変化は、Releaseパラメータで調整することができます。


歌声合成のAquesToneを初公開

歌声を合成するソフトを公開しました。
初音ミクなどのエンジンで有名な ヤマハさんの VOCALOID に近いカテゴリになりますね。

AquesTalkの技術を流用して作ったので、とても小型軽量なソフトとなっています。
もっとも、こういったソフトはPCでの利用が主ですので、サイズやCPU負荷はあまり重要ではないですね。

特徴としては、リアルタイムの生成(ライブ演奏?)でも使えるようにというコンセプトで開発しています。打ち込みもいいんだけれど、ひとつの楽器として伴奏にあわせて音声合成で歌えたら楽しいんじゃないかなと…。

技術的には、リアルタイムのMIDI信号から、なるべく違和感のない歌唱音声を生成するのが大きな課題です。
原則として、音声は連続的に変化させる必要があります。
人が歌う場合は音符のタイミングに先立って口の形が変化し、ようは、常に次の発声の準備をしながら歌っています。
ところが、リアルタイムのMIDI情報からは当然、未来のタイミング情報が不明なので(次の音符がどのタイミングでくるかわからない)、次の情報がきてから変化を開始すると、どうしても発声が遅れ気味になってしまいます。このあたりの対応が一番難しいところです。
VOCALOIDの構成をみても、ヤマハさんもこのあたりで相当苦労しているんじゃないかと・・・。

AquesToneの今後ですが・・・
音質面では、まだまだ改良というかデータのチューニングでもっと良くなる余地があるのですが、これからの反響をウォッチしながら今後を考えていこうと思います。
是非とも多くの方に使っていただいて、いろいろな意見をお待ちしています。
続きを読む >>

音声読み合わせをエクセルで行う

SAPI5に対応したフリーのTTS音声合成エンジンが公開されました。

「ドキュメントトーカ Plus V2.1」 クリエートシステム開発(株)

多少制限があるようですが、これまでフリーのSAPI5対応日本語TTSエンジンは無かったことを考えると、とても画期的だと思うんです。でも、あまり知られていないようなので、ここにちょっとした使い方を書いてみます。

機能的には、AquesTalkに日本語処理を加えてインターフェースをSAPI対応にしたTTSエンジンとなっています。これをインストールすればMicrosoft Officeなどに含まれている音声機能をすぐに利用できます。
入力した表データの音声読み合わせチェックなどができるようになり、これはかなり便利な機能なので機会があれば一度お試しください。

では、インストールから表の読み上げまでを実際にやってみましょう!

今回の動作環境は WindowsXP(Professional)SP2, Excel2003 です。他でも問題ないと思いますが、Vistaはメニューがだいぶ変わっているかと...

1.Excel の読み上げ機能を追加セットアップ
Excelの標準セットアップでは、読み上げ機能がインストールされていませんのでインストールします。もし、Excelの「ツール」メニューに「音声」が表示されるならば、すでにインストールされています。

Excel の読み上げ機能を追加セットアップする方法(Microsoft)

2.ドキュメントトーカ Plus V2.1のインストール
下記から DTALKERPV21.EXE をダウンロードし実行します。
http://www.createsystem.co.jp/DTalkerSapi1.html
インストール先を聞いてきますが、これは一時的な解凍先ディレクトリなのでどこでも良いでしょう。

kaitosaki

次に、解凍した DTalkerPlusV21フォルダ中のsetup.exe を実行してインストールします。
最初に.NETのインストール画面が出ますが、これは「同意する」しかないですね。
それ以降の、選択項目は、デフォルトのままでOKです。

netinstall

インストールが完了したら、ためしに、ドキュメントトーカのアプリを起動してみます。
スタート/ドキュメントトーカ/ドキュメントトーカPlusV2 を実行します。
スプラッシュ画面のあとに次のような画面が出ればOKです。

dtalkerapp

「開始/停止」メニュー /「読み上げの開始」で、音声が出力されます。
デフォルトでは、男声のゆっくりした発声でした。
音が出ないときは、そもそもサウンドを出力できる環境なのかから確認してください。
ここで、ドキュメントトーカのアプリは、いったん終了します。
次は、Microsoft Officeで使用する声の種類と話速を設定します。


3.声種と話速の設定
「コンロトールパネル」/「音声認識」/「音声認識のプロパティ」ダイアログボックスを開きます。
私は、デフォルトの声種を「AquesTalk_女声1」にし、音声の速度を、かなり速めに設定しました。「音声の再生」ボタンを押すと音声が再生されますので、自分の好みの声と速さに調整して「OK」ボタンを押します。

setseisyu

4.Excelで読み上げ
いよいよ、Excelで音声合成を使った読み合わせをしてみましょう。
Excelを起動し、読み上げ対象の文書を開きます。
「ツール」メニューに「音声」/「[読み上げ]ツールバーの表示」をクリックします。

toolbar

あとは、読み上げる最初のセルを選択、あるいは、読み上げるセル範囲を選択し、
「読み上げ」ツールバーの「セルの読み上げ」ボタンをクリックすれば、読み上げを開始します。

playbtn

いかがですか? 音声を聞きながら、目で、元の入力データを確認できるので、楽にチェックができますね!
なお、読み上げの方向を列ごと/行ごとに変更する場合は、「読み上げ」ツールバーのボタンで切り替えます。

自然な合成音声

合成音声の品質について述べるとき、
「より自然な合成音声」とか「もっと自然に」などと
「自然」という単語が頻繁に使われています。

ところで、この「音声」の部分を別の単語に置き換えてみると・・・
「自然な合成食品」 「自然な合成素材」
どうもピンときませんね。
自然と合成ってのが対立しているように感じませんか?

では、「自然な合成音声」って、どういう意味で使ってるのでしょう?
まず、一番近いところが、
人の声に似ている(人間の声っぽい、人間的)
あたりではないかと思います。

そのほかにも、
明瞭である、美しい声、滑らか、などの意味にも使われることもあります。

しかし、
自然な音声は、必ずしも美しく明瞭とは限らないですね。
電話の会話や、会議のやり取りを録音して後で聞いてみれば、
通常、人間が発声している音声が、いかに不明瞭であるかわかるでしょう。

ここからわかることは、
「明瞭な声」とか「美しい声」という表現は、あきらかに「人間的な声」とは異なるベクトルであるということです。

このような理由により、普段何気なく使っている「自然な合成音声」という表現ですが、合成音声の品質を云々するときに「自然」って単語は、あまり使わないほうが良いかなとも思ってます。
「より人の声に近づいた」とか「明瞭さを向上した」などと言ったほうが間違いが無いのではないかな。
もっとも、いろんな理由で、あえて曖昧にしておきたい場合には便利な表現ですが・・・


この話に関連して、人間的では無いけど、美しい、明瞭な合成音声の存在の可能性もでてきます。
人間っぽい声を目指すだけが、音声合成の研究開発の方向性ではないようです。
この話題はまた別の機会に・・・

AquesTalkをVBで使う

VisualBasicで規則音声合成エンジンAquesTalkを利用する方法を紹介します。具体的には、Excel上のVBを使って、AquesTalkのライブラリを呼び出す簡単なプログラミングです。

1. Visual Basic の起動
Excelを開いて、[ツール][マクロ][Visual Basic Editor]で、Visual Basic Editorを起動します。

2. フォームにコントロールを貼り付ける
[挿入][ユーザーフォーム]で新規フォームを作成し、テキストボックスとコマンドボタンを貼り付ける

form_and_control

3. コマンドハンドラの記述
コマンドボタンをダブルクリックして、フォームのコードを開き、CommandButton1_Click()サブルーチン内に次ののコードを記述します。

Private Sub CommandButton1_Click()
If AquesTalkDa_PlaySync(TextBox1.Text, 100) <> 0 Then
MsgBox "error"
End If
End Sub


4. 関数宣言の追加
先頭行に、AquesTalkのDLLファイルおよび使用する関数を定義します。今回は、AquesTalkの2つのライブラリ、AquesTalk.dllとAquesTalkDa.dllのうち、AquesTalkDa.dllの中の一つの関数だけを使用します。この関数は引数に指定した音声記号列を音声に変換してサウンド出力するものです。なお、AquesTalkで公開されているそのほかの関数についてはプログラミングガイドを参照してください。

Private Declare Function AquesTalkDa_PlaySync Lib "AquesTalkDa.dll" (ByVal koe As String, ByVal iSpeed As Integer) As Long


5. AquesTalkライブラリの実体の配置
Windowsのシステムフォルダ(通常は、C:¥Windows¥system32)にAquesTalkライブラリに含まれているAquesTalkDa.dllファイルをコピーしておきます。

6. 実行
Visual Basic EditorのF5で実行。フォームのテキストボックスに任意の音声記号列を入力します。例えば、"こんにちわ。"と入力します(音声記号列の詳細は音声記号列仕様を参照)。その後、コマンドボタンのクリックでテキストボックスの内容が音声出力されます。

ポイントは、先頭行のAquesTalkの関数宣言の部分と、AquesTalkDa.dllを忘れずにシステムディレクトリなどにコピーしておくことですね。その他の関数を使用するときの定義は次のようになると思います。

Private Declare Function AquesTalkDa_PlaySync Lib "AquesTalkDa.dll" (ByVal koe As String, ByVal iSpeed As Integer) As Long

Private Declare Function AquesTalkDa_Create Lib "AquesTalkDa.dll" () As Long

Private Declare Function AquesTalkDa_Play Lib "AquesTalkDa.dll" (ByVal H_AQTKDA As Long, ByVal koe As String, ByVal iSpeed As Integer, ByVal hWnd As Long, ByVal msg As Long, ByVal dwUser As Long) As Integer

Private Declare Sub AquesTalkDa_Stop Lib "AquesTalkDa.dll" (ByVal H_AQTKDA As Long)

Private Declare Sub AquesTalkDa_Release Lib "AquesTalkDa.dll" (ByVal H_AQTKDA As Long)

Private Declare Function AquesTalkDa_IsPlay Lib "AquesTalkDa.dll" (ByVal H_AQTKDA As Long) As Integer


※本記事は、VB呼び出しの不具合解決に協力いただいた方からの情報を参考にしました。ありがとうございます。

calendar
     12
3456789
10111213141516
17181920212223
24252627282930
31      
<< August 2008 >>
sponsored links
selected entries
categories
archives
recommend
ディジタル音声処理
ディジタル音声処理
古井 貞煕
音声合成のしくみ勉強をするなら、最初の本としてお勧め。
recommend
日本語 発音アクセント辞典
日本語 発音アクセント辞典
NHK
辞典としてだけでなく、巻末のアクセントに関する解説が知識として役に立ちます。
recommend
音声符号化
音声符号化
守谷 健弘
CODECの本ですが、音声合成でも実用的なテクニックが満載
recommend
ソニー ステレオヘッドフォン MDR-7506
ソニー ステレオヘッドフォン MDR-7506

私は、普段これで開発しています。
links
profile
search this site.
others
mobile
powered