テキスト読み上げ(Google)
TsgcTextToSpeechGoogle は Google Cloud Text-to-Speech で音声を合成します。サービスアカウントの JWT に署名して音声を要求し、ファイルにデコードして、割り当てたオーディオプレーヤーで再生します。豊富な音声と言語のカタログをプロパティ 1 つで利用できます。
TsgcTextToSpeechGoogle は Google Cloud Text-to-Speech で音声を合成します。サービスアカウントの JWT に署名して音声を要求し、ファイルにデコードして、割り当てたオーディオプレーヤーで再生します。豊富な音声と言語のカタログをプロパティ 1 つで利用できます。
Google Cloud をバックエンドとする音声合成コンポーネントです。サービスアカウントの JSON をオプションに貼り付け、言語、性別、音声を選んで、メソッドを 1 つ呼び出すだけです。
sgcAI は単体で完結しています。このコンポーネントは、土台となる sgcWebSockets Core ランタイムとともに sgcAI に同梱されているため、基本ライセンスを購入する必要はありません。
サービスアカウントの認証情報を指定し、音声を選んで、オーディオプレーヤーを接続します。
uses
sgcAI, sgcAI_TextToSpeech_Google, sgcAI_AudioPlayer_MCI;
var
oTTS: TsgcTextToSpeechGoogle;
begin
oTTS := TsgcTextToSpeechGoogle.Create(nil);
oTTS.AudioPlayer := sgcAudioPlayerMCI1;
// The service account JSON, pasted as-is.
oTTS.GoogleOptions.Settings.LoadFromFile('service-account.json');
oTTS.GoogleOptions.Language := 'en-US';
oTTS.GoogleOptions.VoiceId := 'en-US-Neural2-C';
oTTS.GoogleOptions.AudioEncoding := 'MP3';
oTTS.GoogleOptions.FileName := 'speech.mp3';
oTTS.TextToSpeech('The order has been shipped.');
end;
// includes: sgcAI.hpp, sgcAI_TextToSpeech_Google.hpp
TsgcTextToSpeechGoogle *oTTS = new TsgcTextToSpeechGoogle(NULL);
oTTS->AudioPlayer = sgcAudioPlayerMCI1;
oTTS->GoogleOptions->Settings->LoadFromFile("service-account.json");
oTTS->GoogleOptions->Language = "en-US";
oTTS->GoogleOptions->VoiceId = "en-US-Neural2-C";
oTTS->TextToSpeech("The order has been shipped.");
最もよく使うメンバーです。
Settings はサービスアカウントの JSON を保持します。Language と VoiceId で音声を選択し、ID を指定しない場合は Gender が既定の音声を決めます。AudioEncoding と FileName が合成音声の出力を制御します。
AudioPlayer が合成されたファイルを再生します。TsgcAudioPlayerMCI を割り当てれば、レスポンスが届き次第、再生が始まります。
コンポーネントはサービスアカウントの秘密鍵から JWT を構築して署名し、アクセストークンを有効期限までキャッシュします。そのため、長時間動作するアプリケーションでもフレーズごとに再認証することはありません。
TextToSpeech(aText) は、リクエスト、デコード、書き出し、再生、一時ファイルの後始末までの一連の処理をまとめて実行します。
OnStart と OnStop が処理の前後を挟みます。これにより、チャットボットや翻訳のコンポーネントは返答の読み上げが終わった時点で録音を再開できます。
システムおよび Amazon の音声コンポーネントと同じインターフェースなので、チャットボット、翻訳、アシスタントはコードを変更せずにいずれも受け入れます。
このコンポーネントが利用するサービスとプロトコルの一次情報です。