Conversationの音声通話とビデオ通話

通話とは、ボイスチャットアプリのようなライブ画面で、1人以上のキャラクターに、マイクまたは文字入力で話しかけるものです。実行中は、通常のConversationのチャットの上に重なって表示されます。通話は、Conversationモードでだけ使えます。

通話は、任意のパッケージです。Agents → Agent OrganizerからCallsをインストールしてください。カタログが再起動を求めた場合は、Marinaraを停止して、いつもの方法でもう一度起動します(インストールを参照)。

通話中は、動作するText to Speech(TTS、テキストを音声に変える機能)の音声を持つキャラクターが、声に出して話します。音声のないキャラクターは、通話チャットに文字で返信します。静止したアバターの代わりに、キャラクターのAI生成のループ動画クリップを表示することもできます。

Marinaraは、ブラウザーでマイクまたはカメラを録音します。入力モード(下記を参照)によって、音声は自分のコンピューター上でテキストに変えられるか、選んだチャット用のモデルに送られます。返信は、TTSサービスで読み上げられます。通話が終わると、短い要約がConversationに戻ります。全文の記録は、通話専用のストレージに残ります。

必要なもの

最初の通話の準備

始める前に: キャラクターが1人以上いるConversationのチャットと、返信を書くモデルのアカウントが必要です(AIプロバイダーへの接続を参照)。

  1. 任意: Text to Speechを設定します(Text to Speechの設定を参照)。設定しないと、キャラクターは全員、文字だけで参加します。
  2. チャットを開き、Chat Settings → Agents → Callsを開きます。
  3. Audio/Video Callsをオンにします。会話の名前の隣に、通話ボタンが表示されます。
  4. Call Audio Pipelineをオンにします。これをオフにすると、通話を始められません。文字を入力するだけ、聞くだけの場合でも同じです。マイクも有効になります。
  5. Audio input modeを選びます(下記を参照)。
  6. Start callをクリックします。

うまくいかなかった場合: 「Conversation call audio is not enabled in Chat Settings」と表示されたら、Call Audio Pipelineがオフです。これはグローバルな設定なので、1つのチャットでオンにすると、すべてのConversationの通話でオンになります。新しいチャットでは、先にセットアップウィザードを完了してから、そのチャットのChat Settingsを開いてください。Callsの設定は、Callsをインストールしたときだけ表示されます。

似たスイッチが2つありますが、役割は違います。

同じセクションにあるマスターのCommandsスイッチも、通話中のコマンドのためにオンにする必要があります。通話そのものは、オフのままでも始められます。

Text to Speechの設定

Text to Speechは、どのキャラクターが、どの声で話せるかを決めます。全体の手順はText to Speech(TTS)のセットアップを読んでください。要点は次のとおりです。Connectionsを開き、Add accountをクリックして、Text to speechを選びます。すでにOn this deviceの下に一覧表示されている場合は、そこで開きます。そのうえで、次の手順に従います。

  1. Text to Speechをオンにします。
  2. ソースを選びます: OpenAI-compatible、ElevenLabs、PocketTTS、xAI Voice。
  3. そのソースのAPIキーかローカルサーバーのアドレスを入力します。
  4. モデルと声を選びます。
  5. Voice optionをOne voice for allまたはSelected per character or personaに設定します。キャラクターごとに声を決めると、グループ通話が聞き分けやすくなります。
  6. 保存してから、プレビューのボタンを使って、音声が聞こえることを確認します。

キャラクターにMarinaraが特定できる声がない場合、そのキャラクターは、通話中は文字だけになります。

Audio input modeの選択

Call Audio Pipelineがオンのときは、Audio input modeの一覧が表示されます。迷ったら、デフォルトのままにしてください。

モード働き
Mic recording + Local Whisper(デフォルト)ミュートを解除しているあいだ録音し、無音を無視して、自分のコンピューター上で音声をテキストに変えます。Firefoxに最適です。
Browser speech recognitionブラウザーに組み込まれた音声認識ツールを使います。対応状況はさまざまです。使えないときは、MarinaraがLocal Whisperに切り替えます。
Manual system dictation通話のテキストボックスにカーソルを置くだけなので、お使いのOSの音声入力で入力できます。Marinaraは録音しません。
Provider-native audio/videoモデルがメディアを受け付ける場合に、録音した音声や動画を、そのままモデルに送ります。

カメラと画面共有のボタンは、Camera and screen inputをオンにしたときだけ、Provider-native audio/videoモードで動作します。ほかのモードでは、ボタンは表示されますが、無効のままです。

通話の開始、応答、終了

通話を始める。 通話がオンのとき、会話の名前の隣に電話ボタンがあります。ツールチップはStart call、通話が実行中のときはOpen callです。クリックすると、通話画面が開きます。1つのチャットで、アクティブになれるのも呼び出し中になれるのも、通話1つだけです。別の通話を始めると、現在の通話が開き直されます。

通話に応答する。 Callsコマンドがオンのとき、キャラクターから着信があります。そのチャットでは、メッセージ入力欄の上にIncoming callのバナーが表示され、Decline callとAnswer callがあります。Marinaraのほかの場所では、着信の通知と短い着信音が出ます。Marinaraが、自分から応答することはありません。参加できるのは、利用可能なキャラクターだけです。スケジュールやステータスがオフラインのキャラクターは参加しません。

通話を終える。 通話画面または最小化したポップアウトの、赤いEnd callボタンをクリックします。キャラクターも、通話中のコマンドで、通話から抜けたり終了したりできます。その後、Marinaraは録音を止め、Conversationにカードを追加します。

通話画面

ステージには、参加者ごとに1つのタイルが表示されます。ペルソナと、利用可能な各キャラクターです。話している人が強調表示されます。通話チャットには、入力したメッセージと、文字だけの返信が表示されます。声に出して話した内容は、そこには繰り返されません。デスクトップでは、サイドパネルです。スマートフォンでは、Open call chatで開き、Close call chatで閉じるドロワーです。

通話のコンポーザーには、Message in callボックス、Send、絵文字、GIF、スタンプのピッカー、モデルのクイック切り替えがあります。通話チャットでは、ファイルの添付には対応していません。

コントロール働き
マイクミュートとミュート解除を切り替えます。ツールチップはモードによって変わります。例: Unmute microphone with Local Whisper。
Turn camera on / Turn camera offProvider-native audio/videoモードで、Camera and screen inputがオンのときだけ。
Share screen / Stop sharing screenカメラと同じルールです。
Character volumeミュートボタンと、0から100のスライダー。デフォルトは100で、ブラウザーに保存されます。
SoundboardUploadコントロール付きの、音の一覧。
End call赤い受話器のボタン。

ミュートのまましばらく話さないでいると、「You are muted! Remember to unmute yourself first if you want to talk.」と表示されます。

通話中にConversationを離れると、通話は、チャット名、経過時間、End callを表示する、浮かぶポップアウトに縮小されます。ポップアウトをクリックすると、元に戻ります。閲覧しているあいだも、通話は続きます。

Soundboard

サウンドボードには、削除できない組み込みの音が4つあります。Soft Chime、Tap、Sparkle、Popです。クリックすると再生されます。Uploadで、自分の音を追加します(mp3、wav、ogg、webm、m4a、各8 MBまで)。自分のアップロードは削除できます。キャラクターも、サウンドボードのコマンドで音を鳴らせます。

Character Video Presence

この部分は、任意で、上級者向けです。Character video presenceは、静止したアバターのタイルを、キャラクターのAI生成のループ動画クリップに置き換えます。デフォルトではオフです。スイッチは、Chat Settings → Agents → Callsにあります。

始める前に: ConnectionsでVideo Generationのアカウントを追加し、Default for Videosにするか、毎回選んでください。

  1. キャラクターまたはペルソナのエディターを開きます。
  2. Spritesタブを開き、Clipsサブタブに進みます。
  3. Generate Clipsをクリックするか、Upload extraで自分のクリップを追加します。
  4. Generate Call Clipsウィンドウで、Video Generation Connectionを選び、Use avatar as referenceを選びます。
  5. 標準のクリップを選びます: Idle、Talking、Laughing、Angry、Crying、Sighing。Clip nameと動きの説明を入力して、自分だけのクリップを定義することもできます。

声に出して話すターンのあいだ、Marinaraは[sighs]のような行の中の声のキューを読み取り、合うリアクションのクリップを選び、その後Idleに戻します。クリップがなくても、通話は止まりません。キャラクターは、静止したアバターを表示します。トリミングしたクリップは、そのトリミング範囲の中でループします。キャラクタースプライト(表情と全身)を参照してください。

Character video presenceがオンのときは、さらに2つのスイッチが、その下に表示されます。

Character video presenceをオフにすると、この2つもオフになります。クリップは、再利用できるプレゼンスのループです。シーン動画を入れるGalleryのVideosではありません。

Speech-to-textの設定(上級)

Mic recording + Local Whisperモードのとき、または自分の音声認識サーバーを使いたいときだけ必要です。

Local Whisperのダウンロード

Local Whisperは、Marinaraを動かしているコンピューター上で、音声をテキストに変えます。そのため、マイクの音声は文字起こしのために外へ出ません。ただし、通話の一部として、テキストは引き続きモデルに送られます。音声認識の対応が弱いブラウザー(Firefoxなど)では、もっとも確実なマイクの経路です。

始める前に: Callsをインストールしてください。インストールしないと、このセクションは表示されません。

  1. Connectionsを開き、On this deviceの下にあるSpeech to textを探します。一覧にない場合は、Add accountをクリックして、Speech to textを選びます。
  2. このページのLocal Speech modelを探します。
  3. モデルを選びます。
  1. Download Whisperをクリックして、進行状況バーが終わるまで待ちます。
  2. Callsを使う前に、Marinaraを完全に再起動します。

ごみ箱アイコンのDelete Local Whisperで、モデルを削除します。Callsをアンインストールすると、ダウンロードしたWhisperモデルも削除されます。再インストールしても、自分で選ぶまで、再ダウンロードはされません。

うまくいかなかった場合: MarinaraのLiteビルドでは、「Local Whisper is disabled in Lite mode. Use a full Marinara install to download and run the local speech model.」と表示されます。「native ONNX runtime」についてのメッセージが表示された場合は、お使いのプラットフォーム用の音声エンジンが見つかりません。Marinaraを動かしているのと同じNodeのビルドで、依存関係を再インストールしてから、再起動してください。

自分の音声認識サーバーを使う

Local Whisperが、自分の言語やアクセントで苦戦する場合は、代わりに別の音声認識サーバーに音声を送ります。OpenAIの音声認識の形式(/audio/transcriptionsのアドレス)を受け付けるサーバーであれば、自分で動かしているものでも、OpenAIやGroqのようなサービスでも使えます。

  1. Connectionsを開き、On this deviceの下にあるSpeech to textを開きます。一覧にない場合は、Add accountをクリックして、Speech to textを選びます。Callsがインストールされていないと、表示されません。
  2. Server URLを入力します。例: http://localhost:8000/v1。
  3. サーバーが必要とする場合は、API keyを入力します。暗号化されて保存され、伏せて表示されます。
  4. サーバーが使うModel名を入力します。空にすると、whisper-1を送ります。
  5. 任意: Languageのコードを入力します。plやdeのような形です。空にすると、サーバーが検出します。
  6. Testをクリックします。Marinaraは、1秒間の無音のクリップを送ります。「The server answered.」または「The test failed.」と表示されます。
  7. Use your own speech-to-text serverをオンにします。

オンのあいだは、Mic recording + Local Whisperが、音声をこのサーバーに送ります。Local Whisperをダウンロードする必要はありません。音声がそのサーバーに届くので、信頼できるものを使ってください。同じコンピューター上のサーバーは動作します。ネットワーク上の別のコンピューターのサーバーは、.envでSTT_LOCAL_URLS_ENABLED=trueを設定しない限り、拒否されます(サーバー設定リファレンスを参照)。

うまくいかなかった場合: Testの下のメッセージを読んでください。「Could not reach the speech-to-text server」は、アドレスが違うか、サーバーが停止しているという意味です。STT_LOCAL_URLS_ENABLEDを挙げているメッセージは、サーバーが別のコンピューター上にあるという意味です。サーバーから返る数字のうち、401はたいていAPIキーの誤り、404はアドレスかモデル名の誤りです。通話がそれでもLocal Whisperを使う場合は、Agents → Agent OrganizerからCallsをアップデートしてください。

設定とデフォルト

Per chatの設定は、1つのチャットに適用されます。Globalの設定は、すべてのConversationの通話に適用されます。

設定適用範囲デフォルト
Audio/Video CallsPer chatオフ
Calls(コマンド)Per chatオン
Generate voice cues in [tags]Per chatオン
Call Audio PipelineGlobalオフ
Audio input modeGlobalMic recording + Local Whisper
Camera and screen inputGlobalオフ
Character video presenceGlobalオフ
Automatic video clips generationGlobalオフ
Custom clipsGlobalオフ

1つのチャットで変えたグローバルな設定は、すべてのConversationの通話に影響します。Generate voice cues in [tags]は、声に出して話す行の中に、[whispering]、[laughing]、[sighs]のような短いキューを加えるようモデルに頼みます。キューは、TTSが行を読む方法を形作り、リアクションのクリップの選択にも役立ちます。声に出して話す行をそのままにしたい場合は、オフにします。

通話中のコマンド

キャラクターは、通常のメッセージと同じ、見えないコマンドを、通話中にも使います。そのスイッチは、Chat Settings → Agents → Commandsにあり、マスターのCommandsスイッチがオンです。キャラクターが使えるCommandsの選択を参照してください。コマンドは静かに実行され、声に出して読み上げられることはありません。

通話中には、追加のものが2つ働きます。Soundboard(キャラクターがサウンドボードの音を鳴らす)と、離脱または終了(キャラクターが通話から抜ける、または通話を終える)です。NotesとInfluenceは、チャットにつながっているチャットがあるときだけ表示されます(ConversationをRoleplayやGameにつなぐを参照)。自撮り写真には、Selfie modelが必要です(自撮り写真を参照)。コマンドによっては、画像付きの「sent a selfie」のような小さな項目が、通話チャットに追加されます。

通話終了後の要約

通話が終わると、カードがConversationに表示されます。タイトルは、Call Started、Incoming Call、Call Ended(長さ付き)、Call Declined、Missed Callのいずれかです。Call Endedの後、意味のある出来事があった場合、Marinaraは裏で短い要約を書き、モデルが読める非表示の文脈として追加します。これで、見えるチャットにコピーしなくても、モデルは通話を把握しています。

トラブルシューティング

症状対処
キャラクターに自分の声が聞こえないCall Audio Pipelineがオンで、ブラウザーがMarinaraのページでマイクを許可していることを確認してください。Firefoxや、ブラウザーの音声認識が使えない場合は、Local Whisperをダウンロードして、Mic recording + Local Whisperを使ってください。
ブラウザーの音声認識を選んでも何も起きないFirefoxには、ChromiumとSafariのブラウザーが持つWeb Speech認識がありません。Mic recording + Local Whisperか、Manual system dictationを使ってください。
キャラクターが話さずに文字を入力するText to Speechの設定と声の割り当てを確認してください。Text to Speech(TTS)のセットアップを参照してください。
モデルが話した内容を取り違えるWhisper Base (Multilingual)を試すか、雑音を減らすか、モデルが対応していればProvider-native audio/videoを使ってください。Whisperが苦手な言語では、自分の音声認識サーバーを使い、そのLanguageを設定してください。
カメラまたは画面のボタンが無効になっているProvider-native audio/videoモードを使い、Camera and screen inputをオンにしてください。モデルもカメラや画面の入力に対応している必要があります。
キャラクターが通話の途中で返信しなくなったそのチャットのモデルのアカウントを確認して、通話チャットでもう一度メッセージを送ってください。
スマートフォンで通話がうまく動かない通話チャットはOpen call chatで開きます。音声については、TTSが設定されていることを確認してください。マイクについては、同じLocal Whisperと、許可の手順が当てはまります。

関連ガイド