Аудио- и видеозвонки в режиме Conversation

Звонок – это живой экран, как в приложении для голосовых чатов, где вы разговариваете с одним или несколькими персонажами через микрофон или набирая текст. Он лежит поверх обычного чата Conversation, пока идет. Звонки существуют только в режиме Conversation.

Звонки – необязательный пакет. Установите Calls в Agents → Agent Organizer (агенты → организатор агентов). Если каталог предложит перезапуск, остановите Marinara и запустите ее снова так, как вы обычно ее запускаете (см. Установка).

Во время звонка персонажи с рабочим синтезом речи (TTS, текст, превращенный в устную речь) говорят вслух. Персонажи без голоса отвечают печатными сообщениями в чате звонка. Вместо неподвижного аватара можно также показывать зацикленные видеоклипы персонажа, созданные ИИ.

Marinara записывает ваш микрофон или камеру в браузере. В зависимости от режима ввода (см. ниже) ваша речь превращается в текст на вашем компьютере или отправляется модели, которую вы выбрали для чата. Ответы озвучиваются через ваш сервис TTS. Когда звонок заканчивается, в Conversation возвращается краткая сводка. Полная расшифровка остается в отдельном хранилище звонков.

Что вам понадобится

Настройка первого звонка

Перед началом: вам нужны чат Conversation хотя бы с одним персонажем и аккаунт для модели, которая пишет ответы (см. Подключение к провайдеру ИИ).

  1. Необязательно: настройте синтез речи 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. Это глобальная настройка, поэтому ее включение в одном чате включает ее для всех звонков Conversation.

Для нового чата сначала завершите мастер настройки, затем откройте его Chat Settings. Настройки Calls показываются, только когда Calls установлен.

Два переключателя похожи, но делают разное:

Главный переключатель Commands в том же разделе должен быть включен для команд во время звонка. Сам звонок может начаться и при выключенном.

Настройка синтеза речи

Синтез речи 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

Когда Call Audio Pipeline включен, появляется список Audio input mode. Если не уверены, оставьте вариант по умолчанию.

РежимЧто делает
Mic recording + Local Whisper (по умолчанию)Записывает, пока вы не отключили звук, игнорирует тишину и превращает вашу речь в текст на вашем компьютере. Лучше всего для Firefox.
Browser speech recognitionИспользует средство распознавания речи, встроенное в ваш браузер. Поддержка разная. Marinara переключается на Local Whisper, когда его нет.
Manual system dictationТолько ставит курсор в текстовое поле чата звонка, куда может печатать диктовка вашей операционной системы. Marinara не записывает.
Provider-native audio/videoОтправляет записанный вами звук или видео прямо модели, если модель принимает медиа.

Кнопки камеры и демонстрации экрана требуют Camera and screen input и работают только в режиме Provider-native audio/video. В других режимах они показываются, но остаются неактивными.

Как начать, принять и завершить звонок

Начать звонок. Когда звонки включены, рядом с названием разговора стоит кнопка с телефоном. Ее всплывающая подсказка – Start call, или Open call, когда звонок идет. Нажмите на нее, и откроется экран звонка. Для каждого чата может быть активен или звонить только один звонок. Начало другого заново открывает текущий.

Принять звонок. Персонаж может позвонить вам, когда включена команда Calls. В этом чате над полем сообщения появляется баннер Incoming call с Decline call и Answer call. В других местах Marinara вы получаете уведомление о входящем звонке и короткий сигнал вызова. Marinara никогда не отвечает за вас. Присоединяются только доступные персонажи: персонаж, расписание или статус которого – offline, не присоединяется.

Завершить звонок. Нажмите красную кнопку End call на экране звонка или во всплывающем свернутом окне. Персонаж также может выйти из звонка или завершить его командой во время звонка. Тогда Marinara прекращает запись и добавляет карточку в Conversation.

Экран звонка

На сцене по одной плитке на каждого участника: ваша персона и каждый доступный персонаж. Говорящий подсвечивается. В чате звонка лежат набранные сообщения и ответы только текстом. Произнесенные реплики там не повторяются. На компьютере это боковая панель. На телефоне он открывается как выдвижная панель кнопкой Open call chat и закрывается кнопкой Close call chat.

В поле сообщения звонка есть Message in call, Send, выбор эмодзи, GIF и стикеров и быстрый переключатель модели. Вложения файлов в чате звонка не поддерживаются.

ЭлементЧто делает
MicrophoneОтключает или включает микрофон. Всплывающая подсказка меняется вместе с режимом, например Unmute microphone with Local Whisper.
Turn camera on / Turn camera offРежим Provider-native audio/video только с включенным Camera and screen input.
Share screen / Stop sharing screenТо же правило, что у камеры.
Character volumeКнопка отключения звука и ползунок от 0 до 100. По умолчанию 100, сохраняется в браузере.
SoundboardСписок звуков с кнопкой Upload.
End callКрасная кнопка завершения звонка.

Если вы какое-то время остаетесь без звука, вы увидите "You are muted! Remember to unmute yourself first if you want to talk."

Если вы покидаете Conversation во время звонка, он сворачивается в плавающее окошко с названием чата, прошедшим временем и End call. Нажмите на окошко, чтобы вернуться. Звонок продолжается, пока вы просматриваете Marinara.

Soundboard

В soundboard четыре встроенных звука, которые нельзя удалить: Soft Chime, Tap, Sparkle и Pop. Нажмите Upload, чтобы добавить свой (mp3, wav, ogg, webm или m4a, до 8 МБ каждый). Свои загрузки можно удалить. Персонажи могут проиграть звук командой soundboard.

Видеоприсутствие персонажа

Эта часть необязательна и рассчитана на опытных пользователей. Character video presence заменяет неподвижный аватар персонажа на зацикленный видеоклип, созданный ИИ. По умолчанию выключено. Переключатель находится в Chat Settings → Agents → Calls.

Перед началом: добавьте аккаунт Video Generation в Connections и отметьте его как 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. Отсутствующий клип никогда не блокирует звонок: персонаж показывает неподвижный аватар. Обрезанный клип зацикливается внутри своего диапазона обрезки. См. Спрайты персонажа (выражения лица и Full-body).

Еще два переключателя появляются под Character video presence, когда он включен:

Выключение Character video presence также выключает оба. Клипы здесь – это повторно используемые циклы присутствия, а не Videos в Gallery, где хранятся видео сцен.

Настройка распознавания речи (для опытных)

Нужна только для режима Mic recording + Local Whisper или если вы используете свой сервер распознавания речи.

Загрузка Local Whisper

Local Whisper превращает вашу речь в текст на компьютере, где работает Marinara, поэтому звук микрофона не покидает его для расшифровки. Текст при этом все равно отправляется вашей модели как часть звонка. Это самый надежный путь для микрофона в браузерах со слабой поддержкой речи, например Firefox.

Перед началом: установите Calls. Без него раздел скрыт.

  1. Откройте Connections и найдите Speech to text в On this device. Если его нет в списке, нажмите Add account и выберите Speech to text.
  2. Найдите Local speech model на этой странице.
  3. Выберите модель:
  1. Нажмите Download Whisper и дождитесь окончания полосы прогресса.
  2. Полностью перезапустите Marinara, прежде чем использовать Calls.

Значок корзины 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", для вашей платформы нет движка распознавания речи. Переустановите зависимости на той же версии Node, на которой вы запускаете Marinara, затем перезапустите.

Использование собственного сервера распознавания речи

Если Local Whisper плохо справляется с вашим языком или акцентом, вместо него можно отправлять голос на другой сервер распознавания речи. Подходит любой сервер, который принимает формат распознавания речи OpenAI (адрес /audio/transcriptions), будь то свой сервер или такой сервис, как OpenAI или Groq.

  1. Откройте Connections и откройте Speech to text в On this device. Если его нет в списке, нажмите 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 отправляет одну секунду тишины. Вы видите "The server answered." или "The test failed."
  7. Включите Use your own speech-to-text server.

Пока он включен, Mic recording + Local Whisper отправляет речь на этот сервер, и вам не нужно загружать Local Whisper. Ваш звук идет на этот сервер, поэтому используйте тот, которому вы доверяете.

Сервер на том же компьютере работает как есть. Сервер на другом компьютере в вашей сети отклоняется, если вы не задали STT_LOCAL_URLS_ENABLED=true в .env (см. справочник настроек сервера).

Если не получилось: прочитайте сообщение под Test. "Could not reach the speech-to-text server" означает, что адрес неверен или сервер выключен. Сообщение с названием STT_LOCAL_URLS_ENABLED означает, что сервер находится на другом компьютере. Число приходит от вашего сервера: 401 обычно означает неверный ключ API, 404 – неверный адрес или имя модели. Если звонки все еще используют Local Whisper, обновите Calls в Agents → Agent Organizer.

Настройки и значения по умолчанию

Настройки Per chat действуют для одного чата. Настройки Global действуют для каждого звонка Conversation.

НастройкаОбластьПо умолчанию
Audio/Video CallsPer chatOff
Calls (команда)Per chatOn
Generate voice cues in [tags]Per chatOn
Call Audio PipelineGlobalOff
Audio input modeGlobalMic recording + Local Whisper
Camera and screen inputGlobalOff
Character video presenceGlobalOff
Automatic video clips generationGlobalOff
Custom clipsGlobalOff

Глобальная настройка, измененная в одном чате, меняется для каждого звонка Conversation. Generate voice cues in [tags] просит модель добавлять в произнесенные реплики короткие подсказки, например [whispering], [laughing] или [sighs]. Они определяют, как TTS читает строку, и помогают выбирать клипы реакций. Выключите ее, чтобы произнесенные строки оставались простыми.

Команды во время звонка

Персонажи используют во время звонка те же скрытые команды, что и в обычных сообщениях. Каждой нужен свой переключатель в Chat Settings → Agents → Commands и главный переключатель Commands. См. Выбор команд, которые может использовать персонаж. Они выполняются молча и никогда не произносятся.

Две дополнительные работают во время звонка: Soundboard (персонаж проигрывает звук 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 нет распознавания Web Speech, которое есть в браузерах Chromium и Safari. Используйте Mic recording + Local Whisper или Manual system dictation.
Персонаж печатает вместо того, чтобы говоритьПроверьте настройки 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 и разрешениям.

Смежные руководства