Голосовой ввод и воспроизведение

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

  1. Откройте Настройки → Речь. Карточка Речь использует совместимый с OpenAI серверный адаптер независимо от провайдера модели разговора.
  2. Введите API-ключ, при желании Базовый URL, Модель распознавания, Речевая модель и Голос по умолчанию.
  3. Если вводу и выводу нужны разные службы, включите Раздельные провайдеры для ввода и вывода, затем заполните ключ, базовый URL и модель ввода/вывода.
  4. Выберите Режим воспроизведения и Формат вывода, затем Сохранить (доступно, пока есть несохранённые изменения). Перед проверкой посмотрите статус рядом с кнопками проверки: Настроено, Частично настроено или Отсутствует API-ключ; при неудачном сохранении показывается Не удалось сохранить.

Настройки и ключи речи принадлежат конфигурации подключённого сервера CodeNomad, не выбранному проекту или подключению провайдера OpenCode. Другие клиенты этой конфигурации используют их же. Сохранённые ключи скрыты: пустое поле сохраняет прежнее значение; Удалить сохранённый ключ планирует удаление при сохранении. Направление без своего эндпоинта и ключа может использовать общие настройки; отдельному эндпоинту нужен свой ключ, отдельному ключу — свой эндпоинт. При смене эндпоинта явно укажите нужный ключ и проверьте сохранённую конфигурацию; смена эндпоинта очищает сохранённый ключ этого слота вместо отправки другому хосту.

Серверная часть также может использовать OPENAI_API_KEY и OPENAI_BASE_URL как общие значения по умолчанию. Очистка сохранённого ключа не удаляет учётные данные из окружения; измените окружение серверной части и перезапустите её, если хотите убрать резервный вариант.

Настройка Значение / по умолчанию
Базовый URL Корень совместимого с OpenAI API, по умолчанию https://api.openai.com/v1. Ввод использует audio/transcriptions; вывод — audio/speech.
Модель распознавания / модель ввода Модель, принимаемая STT-эндпоинтом; по умолчанию gpt-4o-mini-transcribe.
Речевая модель / модель вывода Модель, принимаемая TTS-эндпоинтом; по умолчанию gpt-4o-mini-tts.
Голос по умолчанию Идентификатор голоса провайдера; по умолчанию alloy. Это не выбор голоса ОС.
Потоковый По умолчанию. Начинает воспроизведение при поступлении аудио, если провайдер и браузер поддерживают формат.
Буферизованный Ждёт полного аудиоответа перед воспроизведением.
Формат вывода mp3, wav, opus или aac; по умолчанию mp3. Совместимость зависит от браузера/провайдера.

Это запросы к настроенной службе, не гарантия реализации каждой модели, голоса или формата любым совместимым эндпоинтом. Сбой сохранения оставляет ошибку; изучите конфигурацию перед новым изменением.

Проверка ввода и вывода

  1. Сначала сохраните изменения эндпоинта, ключа, модели и голоса.
  2. Выберите Проверить ввод, разрешите микрофон, произнесите текст, затем Остановить запись. Проверьте полученную расшифровку.
  3. Выберите Проверить воспроизведение для прослушивания примера; Остановить пример завершает его.

Тест воспроизведения сразу использует выбранные режим/формат, но эндпоинт, ключ, модель и голос берутся из сохранённых настроек. Проверка ввода не отправляет запрос разговора. Тесты всё равно передают аудио/текст настроенному провайдеру речи и могут оплачиваться.

При сбое потока выберите Буферизованный, попробуйте mp3, сохраните и повторите тест. «Настроено» подтверждает настройки, не успешную аутентификацию провайдера или воспроизведение кодека. Проверьте доступность эндпоинта с сервера, имена модели/голоса и квоту перед повтором.

Диктовка запроса

  1. Оставьте включённым Голосовой ввод промпта в Речь (он включён по умолчанию).
  2. В поле ввода откройте Больше действий, выберите Начать голосовой ввод и разрешите доступ к микрофону этого устройства.
  3. Закончив говорить, выберите Остановить запись и расшифровать в том же меню; пока идёт обработка, показывается Идёт расшифровка аудио.
  4. Проверьте и отредактируйте вставленный текст перед обычной отправкой запроса.

Распознавание вставляет текст в текущее выделение; не отправляет автоматически в OpenCode. Пункт меню появляется только при настроенном STT и поддержке записи клиентом. Запись использует микрофон клиентского устройства, даже если CodeNomad на удалённом сервере.

Если пункта нет, проверьте переключатель и STT. При ошибке разрешений разрешите микрофон в настройках приватности браузера и ОС. Удалённой браузерной записи нужен безопасный контекст, обычно доверенный HTTPS; см. мобильный доступ и прямой удалённый доступ. Уход или закрытие поля ввода завершает жизненный цикл записи; не рассчитывайте на восстановление неотправленного аудио. Текстовый черновик остаётся местом проверки результата.

Озвучивание сообщений

  1. Используйте Озвучить сообщение у сообщения или то же действие у вызова инструмента, когда TTS доступен.
  2. Нажмите Остановить воспроизведение на том же элементе, чтобы завершить его; запуск другого чтения останавливает текущее.
  3. Меняйте сохранённые голос, модель, режим или формат в Речь для последующих запросов.

Воспроизведение использует текстовую проекцию CodeNomad, не озвученный снимок экрана: двоичные байты/изображения и квитанции разрешений не входят в речь. Оно не выполняет запрос модели и не меняет выбранную модель OpenCode. Поддержка аудио браузером и ответы провайдера всё ещё могут мешать воспроизведению при выбираемом формате.

Для автоматической речи разговора используйте Включить режим разговора в меню Больше действий поля ввода; он действует для этой вкладки проекта и не сохраняется после перезагрузки. Пока он включён, CodeNomad с каждым отправленным вами запросом просит агента начинать ответ с короткой сводки в ограждённом блоке spoken. Читается только этот завершённый блок, в активной основной сессии; это не автоматическое чтение каждого ответа или субагента. Выключить режим разговора останавливает очередь и больше не запрашивает сводку. Начало микрофонного ввода тоже останавливает активную речь разговора. Переключатель появляется с голосовым вводом или пока режим уже включён и требует работающий TTS для включения.

Поток данных и конфиденциальность

Аудио микрофона идёт от клиента в серверную часть CodeNomad, затем в настроенный STT-эндпоинт. Текст синтеза идёт через серверную часть в настроенный TTS-эндпоинт; возвращённое аудио играет на клиенте. API-ключи остаются на сервере и не возвращаются сохранёнными значениями в форму настроек.

Используйте эндпоинт, которому доверяете диктуемый или читаемый материал. Это не гарантия автономного распознавания, а учётные данные OpenCode не авторизуют речь автоматически. Завершив, остановите запись/воспроизведение; смена ключа или эндпоинта влияет на будущие запросы, не уже отправленные провайдеру данные. Прочитайте безопасность перед открытием сервера другим пользователям.