Аудио- и видеозвонки в режиме Conversation
Звонок – это живой экран, как в приложении для голосовых чатов, где вы разговариваете с одним или несколькими персонажами через микрофон или набирая текст. Он лежит поверх обычного чата Conversation, пока идет. Звонки существуют только в режиме Conversation.
Звонки – необязательный пакет. Установите Calls в Agents → Agent Organizer (агенты → организатор агентов). Если каталог предложит перезапуск, остановите Marinara и запустите ее снова так, как вы обычно ее запускаете (см. Установка).
Во время звонка персонажи с рабочим синтезом речи (TTS, текст, превращенный в устную речь) говорят вслух. Персонажи без голоса отвечают печатными сообщениями в чате звонка. Вместо неподвижного аватара можно также показывать зацикленные видеоклипы персонажа, созданные ИИ.
Marinara записывает ваш микрофон или камеру в браузере. В зависимости от режима ввода (см. ниже) ваша речь превращается в текст на вашем компьютере или отправляется модели, которую вы выбрали для чата. Ответы озвучиваются через ваш сервис TTS. Когда звонок заканчивается, в Conversation возвращается краткая сводка. Полная расшифровка остается в отдельном хранилище звонков.
Что вам понадобится
- Установленный Calls.
- Чат Conversation хотя бы с одним персонажем и аккаунт для модели, которая пишет ответы.
- Включенные Audio/Video Calls и Call Audio Pipeline в настройках чата.
- Необязательно: аккаунт синтеза речи (Text to Speech), чтобы персонажи говорили. Без него они отвечают текстом.
- Необязательно: режим микрофона по умолчанию требует однократной загрузки Local Whisper (см. Загрузка Local Whisper). Вместо этого можно печатать в чате звонка.
Настройка первого звонка
Перед началом: вам нужны чат Conversation хотя бы с одним персонажем и аккаунт для модели, которая пишет ответы (см. Подключение к провайдеру ИИ).
- Необязательно: настройте синтез речи Text to Speech (см. Настройка синтеза речи). Без него каждый персонаж присоединяется только текстом.
- Откройте чат, затем откройте Chat Settings → Agents → Calls.
- Включите Audio/Video Calls. Рядом с именем чата появится кнопка звонка.
- Включите Call Audio Pipeline. Без него не может начаться ни один звонок, даже если вы только печатаете или только слушаете. Он также включает микрофон.
- Выберите Audio input mode (см. ниже).
- Нажмите Start call.
Если не получилось: когда вы видите "Conversation call audio is not enabled in Chat Settings", выключено Call Audio Pipeline. Это глобальная настройка, поэтому ее включение в одном чате включает ее для всех звонков Conversation.
Для нового чата сначала завершите мастер настройки, затем откройте его Chat Settings. Настройки Calls показываются, только когда Calls установлен.
Два переключателя похожи, но делают разное:
- Audio/Video Calls показывает кнопку звонка, чтобы вы могли позвонить персонажу.
- Команда Calls позволяет персонажам звонить вам первыми. Когда она выключена, вы все равно можете начинать звонки сами.
Главный переключатель Commands в том же разделе должен быть включен для команд во время звонка. Сам звонок может начаться и при выключенном.
Настройка синтеза речи
Синтез речи Text to Speech решает, какие персонажи могут говорить и каким голосом. Полное руководство читайте в Настройка синтеза речи (TTS). Кратко: откройте Connections, нажмите Add account и выберите Text to speech. Если он уже есть в списке On this device, откройте его там. Затем:
- Включите Text to Speech.
- Выберите источник: OpenAI-compatible, ElevenLabs, PocketTTS или xAI Voice.
- Введите ключ API или адрес локального сервера для этого источника.
- Выберите модель и голос.
- Задайте Voice option как One voice for all или Selected per character or persona. Голоса для каждого персонажа облегчают понимание групповых звонков.
- Сохраните, затем нажмите кнопку предпросмотра, чтобы убедиться, что звук есть.
Если у персонажа нет голоса, который 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 или выберите его для каждого клипа.
- Откройте редактор персонажа или персоны.
- Откройте вкладку Sprites, затем подвкладку Clips.
- Нажмите Generate Clips или Upload extra, чтобы добавить свой.
- В окне Generate Call Clips выберите Video Generation Connection и отметьте Use avatar as reference.
- Выберите стандартные клипы: Idle, Talking, Laughing, Angry, Crying, Sighing. Можно также задать свой клип с помощью Clip name и описания действия.
Во время произнесенной реплики Marinara читает голосовые подсказки в строке, например [sighs], выбирает подходящий клип реакции, затем возвращается к Idle. Отсутствующий клип никогда не блокирует звонок: персонаж показывает неподвижный аватар. Обрезанный клип зацикливается внутри своего диапазона обрезки. См. Спрайты персонажа (выражения лица и Full-body).
Еще два переключателя появляются под Character video presence, когда он включен:
- Automatic video clips generation (по умолчанию выключено) создает только Idle и Talking для участника, которому это нужно. Клипы реакций и свои клипы автоматически не создаются никогда.
- Custom clips (по умолчанию выключено) позволяет персонажу изредка запросить разовый клип в живом звонке и повторить готовый свой клип. Это для особых моментов, а не для каждого хода.
Выключение Character video presence также выключает оба. Клипы здесь – это повторно используемые циклы присутствия, а не Videos в Gallery, где хранятся видео сцен.
Настройка распознавания речи (для опытных)
Нужна только для режима Mic recording + Local Whisper или если вы используете свой сервер распознавания речи.
Загрузка Local Whisper
Local Whisper превращает вашу речь в текст на компьютере, где работает Marinara, поэтому звук микрофона не покидает его для расшифровки. Текст при этом все равно отправляется вашей модели как часть звонка. Это самый надежный путь для микрофона в браузерах со слабой поддержкой речи, например Firefox.
Перед началом: установите Calls. Без него раздел скрыт.
- Откройте Connections и найдите Speech to text в On this device. Если его нет в списке, нажмите Add account и выберите Speech to text.
- Найдите Local speech model на этой странице.
- Выберите модель:
- Whisper Tiny (Multilingual): около 180 МБ для загрузки и 350 МБ памяти. Лучше всего для телефонов и старых компьютеров.
- Whisper Base (Multilingual): около 320 МБ для загрузки и 650 МБ памяти. Лучше при неразборчивой речи.
- Нажмите Download Whisper и дождитесь окончания полосы прогресса.
- Полностью перезапустите 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.
- Откройте Connections и откройте Speech to text в On this device. Если его нет в списке, нажмите Add account и выберите Speech to text. Он скрыт, пока Calls не установлен.
- Введите Server URL, например
http://localhost:8000/v1. - Введите API key, если он нужен серверу. Он сохраняется в зашифрованном виде и показывается скрытым.
- Введите имя Model, которое использует ваш сервер. Оставьте пустым, чтобы отправлять
whisper-1. - Необязательно: введите код Language, например
plилиde. Оставьте пустым, чтобы сервер определил язык сам. - Нажмите Test. Marinara отправляет одну секунду тишины. Вы видите "The server answered." или "The test failed."
- Включите 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 Calls | Per chat | Off |
| Calls (команда) | Per chat | On |
| Generate voice cues in [tags] | Per chat | On |
| Call Audio Pipeline | Global | Off |
| Audio input mode | Global | Mic recording + Local Whisper |
| Camera and screen input | Global | Off |
| Character video presence | Global | Off |
| Automatic video clips generation | Global | Off |
| Custom clips | Global | Off |
Глобальная настройка, измененная в одном чате, меняется для каждого звонка 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 и разрешениям. |
Смежные руководства
- Настройка синтеза речи (TTS)
- Настройка модели Local Model
- Спрайты персонажа (выражения лица и Full-body)
- Режим Conversation: начало работы