こんにちは、スクーティー代表のかけやと申します。
弊社は生成AIを強みとするベトナムオフショア開発・ラボ型開発や、生成AIコンサルティングなどのサービスを提供しており、最近はありがたいことに生成AIと連携したシステム開発のご依頼を数多く頂いています。
Difyのバージョン0.6.14がリリースされました。このリリースではいくつかの新しい機能が追加されていますが、その中でも音声出力(TTS: Text-to-Speech)機能が追加されており、早く試そう試そうと思いつつ、やっと試すことができました!
なのですが、、、あれれ?どうやって使うの・・・・・・?ということで結構はまったので(僕だけでしょうか??)、使い方をご紹介いたします!
準備
Difyのバージョン0.6.14について
Difyのバージョン0.6.14では、以下の機能が新たに追加されました。
- TTSストリーミング設定:音声の自動出力がサポートされました。
- Workflowの機能拡張:ワークフローノードにelifが追加され、条件として定数だけでなく変数を指定できるようになりました。
- いくつかの連携できる外部サービスの追加
環境を作る
今回はMacOSのローカルPC上で動作することを前提とします。
ローカルPC上にDifyを立ち上げる方法は、「DifyでSEO記事作成を試してみる」に詳しく記載していますので、そちらをご覧ください。
また、最新のソースコードに更新しておく必要があります。その方法はこちらのリリースノートの「Upgrade Guide」に記載があるので、そのまま従うだけでできます。docker-compose.yamlがリファクタリングされたため、ソースコードの更新方法がこれまでと変わっています。
しかし今回は、私はその部分を読まずに今までと同じコマンドで更新をしてしまいましたが、Warningはいくつかでたものの、アプリケーションは問題なく動作しました。
その方法は「ローカル環境上のDifyでGPT-4oを使えるようにする」をご覧ください。
Dify愛が止まらない私は、これまでもいくつかDifyに関する記事を書いています。そちらもぜひご覧いただけると嬉しいです!
音声出力(TTS: Text-to-Speech)を試す
とりあえずいろいろ試す
先程のリリースノートを見ても、実際にどうやってTTSを使用できるのか全然わからない・・・ということで、あれこれ試してみました。
もともとやりたかったのは、Groq(LLMはLlama3.1)を使用して、超高速レスポンス環境で会話をしたかったのですが、結論としては、以下の理由でこれはできませんでした。
- GroqはTTSに対応していない
- TTSに対応しているLLMはOpenAIのGPTを始め、Difyで選べるものとしては全部で3つのみ
- 上記がわかったため、Groqの出力をGPT-4o miniに入力し、GPT-4o miniを音声出力しようと試したが、Workflowでは音声出力ができない。音声出力を設定できるのはChatbotのみ。
- というか、Groqの出力をGPT-4o miniに入力している時点で、レスポンス速度がGPT-4o miniに律速されるため、Groqの超高速レスポンスでの会話がこの構成ではそもそもできるわけがないということに、後で気づきました。。。
- 音声出力は自動再生ができるが、音声入力は自動的にされる仕様になっていないため、音声入出力【のみ】での会話ができない。
ChatbotでTTSを試す
ということで、現時点でDifyのTTSを使いたければ、Chatbot一択になるため、Chatbotを作成していきます。
① 空のChatbotを作成する
- トップメニューの「Studio」から左上の「Chatbot」を選択
- 「Create from Blank」を選択
そうすると、Chatbot作成画面の初期状態が開きます。
② 「ADD FEATURES」をクリック
ここはいわゆる、初期状態では使えない機能を追加できるようにするための設定です。この中で音声入出力を有効にすることができます。
③ 「Text to Speech」をOnにする
「Text to Speech」をOnにすると音声出力(TTS)が使用できるようになります。ちなみに、その下にある「Speech to Text」をOnにすると、音声入力を使用することができるようになります。
④ 「Text to Speech」の「Seetings」をクリック
これをクリックすると、TTSの設定をいくつか変更できるようになります。
⑤ 「Auto Play」をOnにする
これがOffの場合、音声出力すること自体はできますが、チャットのメッセージ出力の▶ボタンを押して始めて、出力されたテキストを音声で聞くことができるという動作になります。
僕は「会話」をしたかったので、いちいち▶ボタンを押さずに、テキストの出力ができたら音声出力も同時にされるようにしたかったため、「Auto Play」をOnにしました。
⑥ 右上メニューの「Settings」をクリック
音声出力に対応しているモデルを確認しておきたかったので、右上のSettingsから、モデルの設定画面を開きます。
⑦ ポップアップ内左メニューの「Model Provider」をクリック
「Model Provider」をクリックすると、Difyで利用できるモデルを提供しているサービス一覧が表示されます。各サービスプロバイダーの欄にラベルが表示されており、その中で「TTS」のラベルがついているものがTTSに対応しています。
本記事作成の2024年7月末時点では、GPTと他2つ、合計3つがTTSに対応していました。私はすでにOpenAIのGPTを設定済みだったため、GPTを選択することにしました。
この画面では特に何も設定せず、確認のみになります。
⑧ Chatbotで適当に入力し、音声出力を試す
今回はモデルとして、高速で安価なGPT-4o miniを選択しました。
これで最低限の準備は完了です!早速TTSを試してみましょう。
ウィンドウの右半分がチャットの動作確認用の画面になります。なんでもいいのでとりあえず適当にテキストを入力してみます。
すると、テキストと共に、音声でも回答が出力されました。テキストで入力して、音声で返ってくるという不思議なコミュニケーション!とても自然な日本語で話してくれます!
ちなみに、④のSettingsで音声出力される言語や声も選択できます。ただし、日本語は一種類の声しか実装されていませんでした。また、英語を選択したとしても、モデルからの出力が日本語の場合は日本語を話してくれました。英語の設定で日本語を話すと、やや訛っているような発音ではありましたが、日本語設定の場合と大して変わりませんでした。