Голосовой ввод и воспроизведение
Настройка речи
- Откройте Настройки → Речь. Карточка Речь использует совместимый с OpenAI серверный адаптер независимо от провайдера модели разговора.
- Введите API-ключ, при желании Базовый URL, Модель распознавания, Речевая модель и Голос по умолчанию.
- Если вводу и выводу нужны разные службы, включите Раздельные провайдеры для ввода и вывода, затем заполните ключ, базовый URL и модель ввода/вывода.
- Выберите Режим воспроизведения и Формат вывода, затем Сохранить (доступно, пока есть несохранённые изменения). Перед проверкой посмотрите статус рядом с кнопками проверки: Настроено, Частично настроено или Отсутствует 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. Совместимость зависит от браузера/провайдера. |
Это запросы к настроенной службе, не гарантия реализации каждой модели, голоса или формата любым совместимым эндпоинтом. Сбой сохранения оставляет ошибку; изучите конфигурацию перед новым изменением.
Проверка ввода и вывода
- Сначала сохраните изменения эндпоинта, ключа, модели и голоса.
- Выберите Проверить ввод, разрешите микрофон, произнесите текст, затем Остановить запись. Проверьте полученную расшифровку.
- Выберите Проверить воспроизведение для прослушивания примера; Остановить пример завершает его.
Тест воспроизведения сразу использует выбранные режим/формат, но эндпоинт, ключ, модель и голос берутся из сохранённых настроек. Проверка ввода не отправляет запрос разговора. Тесты всё равно передают аудио/текст настроенному провайдеру речи и могут оплачиваться.
При сбое потока выберите Буферизованный, попробуйте mp3, сохраните и повторите тест. «Настроено» подтверждает настройки, не успешную аутентификацию провайдера или воспроизведение кодека. Проверьте доступность эндпоинта с сервера, имена модели/голоса и квоту перед повтором.
Диктовка запроса
- Оставьте включённым Голосовой ввод промпта в Речь (он включён по умолчанию).
- В поле ввода откройте Больше действий, выберите Начать голосовой ввод и разрешите доступ к микрофону этого устройства.
- Закончив говорить, выберите Остановить запись и расшифровать в том же меню; пока идёт обработка, показывается Идёт расшифровка аудио.
- Проверьте и отредактируйте вставленный текст перед обычной отправкой запроса.
Распознавание вставляет текст в текущее выделение; не отправляет автоматически в OpenCode. Пункт меню появляется только при настроенном STT и поддержке записи клиентом. Запись использует микрофон клиентского устройства, даже если CodeNomad на удалённом сервере.
Если пункта нет, проверьте переключатель и STT. При ошибке разрешений разрешите микрофон в настройках приватности браузера и ОС. Удалённой браузерной записи нужен безопасный контекст, обычно доверенный HTTPS; см. мобильный доступ и прямой удалённый доступ. Уход или закрытие поля ввода завершает жизненный цикл записи; не рассчитывайте на восстановление неотправленного аудио. Текстовый черновик остаётся местом проверки результата.
Озвучивание сообщений
- Используйте Озвучить сообщение у сообщения или то же действие у вызова инструмента, когда TTS доступен.
- Нажмите Остановить воспроизведение на том же элементе, чтобы завершить его; запуск другого чтения останавливает текущее.
- Меняйте сохранённые голос, модель, режим или формат в Речь для последующих запросов.
Воспроизведение использует текстовую проекцию CodeNomad, не озвученный снимок экрана: двоичные байты/изображения и квитанции разрешений не входят в речь. Оно не выполняет запрос модели и не меняет выбранную модель OpenCode. Поддержка аудио браузером и ответы провайдера всё ещё могут мешать воспроизведению при выбираемом формате.
Для автоматической речи разговора используйте Включить режим разговора в меню Больше действий поля ввода; он действует для этой вкладки проекта и не сохраняется после перезагрузки. Пока он включён, CodeNomad с каждым отправленным вами запросом просит агента начинать ответ с короткой сводки в ограждённом блоке spoken. Читается только этот завершённый блок, в активной основной сессии; это не автоматическое чтение каждого ответа или субагента. Выключить режим разговора останавливает очередь и больше не запрашивает сводку. Начало микрофонного ввода тоже останавливает активную речь разговора. Переключатель появляется с голосовым вводом или пока режим уже включён и требует работающий TTS для включения.
Поток данных и конфиденциальность
Аудио микрофона идёт от клиента в серверную часть CodeNomad, затем в настроенный STT-эндпоинт. Текст синтеза идёт через серверную часть в настроенный TTS-эндпоинт; возвращённое аудио играет на клиенте. API-ключи остаются на сервере и не возвращаются сохранёнными значениями в форму настроек.
Используйте эндпоинт, которому доверяете диктуемый или читаемый материал. Это не гарантия автономного распознавания, а учётные данные OpenCode не авторизуют речь автоматически. Завершив, остановите запись/воспроизведение; смена ключа или эндпоинта влияет на будущие запросы, не уже отправленные провайдеру данные. Прочитайте безопасность перед открытием сервера другим пользователям.