Я использую gigaam, поэтому время на sst сразу урезается раз в десять по сравнению с whisper. Но мне не нужна мультиязычность. Глянул последние логи: от окончания моего запроса до ответа - около 150мс на простых tool, ещё около 150-300мс если small talk с llm. Это с учетом wakeword, двух гейтов (кто сказал и действительно ли произнесено именно wake). Когда более-менее настроил, то был убеждён, что неправильно меряю время :) Проверил записью команд-ответов со стороны и анализом получившегося аудио - всё сошлось.
Спасибо за статью! Интересно было почитать и повспоминать, как сам такое делал.
AEC можно сделать програмно, если в железе оно не предусмотрено. VAD крадёт некоторое время, ожидая окончания фразы - уменьшить можно семантическим и просодическим эндпоинтонгом и небольшой моделью вероятности продолжения/окончания фразы. Для более быстрой реакции робота можно параллелить vad/vosk/sst.
Какое у вас в итоге получается время между окончанием команды и началом звукового ответа/действия?
Спасибо, интересно и полезно: попробую применить ваш подход в голосовом ассистенте вместо VAD. Но очень удивили замеры в первой таблице. Неужели действительно 3мс и 5мс от конца реплики до первого звука ответа?
Не помню, пробовал ли без ризонинга. Надо поэкспериментировать, спасибо за подсказку.
Сейчас перезапустил свою колонку-ассистента с whisper small: 827-855 мс на транскибацию нескольких "Андромеда, как дела?". На gigaAM – 83-110 мс (на разные реплики - данные из предыдущих метрик). Обе модели на mac-mini м4 16GB, с прогревом.
Чтобы было ощущение реального разговора с ассистентом, локальные llm не особо подходят. Долго думают. Самый быстрый ответ приходит от Cerebras – 200-500 мс. А вот про wake, vad, stt и tts локально – вам выше правильно написали. Только вместо whisper лучше взять gigaAM, она быстрее работает. Если хорошо помню, на порядок быстрее.
Не во всех генеративных tts можно поставить ударения. Gemini, например, от ударений только хуже, если их в тексте много.
Ну текст же тоже не вы писали, признайтесь :)
Например: "И вот тут самое интересное." Да и вообще очень узнаваемый стиль иишного текста.
Я использую gigaam, поэтому время на sst сразу урезается раз в десять по сравнению с whisper. Но мне не нужна мультиязычность. Глянул последние логи: от окончания моего запроса до ответа - около 150мс на простых tool, ещё около 150-300мс если small talk с llm. Это с учетом wakeword, двух гейтов (кто сказал и действительно ли произнесено именно wake). Когда более-менее настроил, то был убеждён, что неправильно меряю время :) Проверил записью команд-ответов со стороны и анализом получившегося аудио - всё сошлось.
Спасибо за статью! Интересно было почитать и повспоминать, как сам такое делал.
AEC можно сделать програмно, если в железе оно не предусмотрено. VAD крадёт некоторое время, ожидая окончания фразы - уменьшить можно семантическим и просодическим эндпоинтонгом и небольшой моделью вероятности продолжения/окончания фразы. Для более быстрой реакции робота можно параллелить vad/vosk/sst.
Какое у вас в итоге получается время между окончанием команды и началом звукового ответа/действия?
Спасибо, интересно и полезно: попробую применить ваш подход в голосовом ассистенте вместо VAD. Но очень удивили замеры в первой таблице. Неужели действительно 3мс и 5мс от конца реплики до первого звука ответа?
Не помню, пробовал ли без ризонинга. Надо поэкспериментировать, спасибо за подсказку.
Сейчас перезапустил свою колонку-ассистента с whisper small: 827-855 мс на транскибацию нескольких "Андромеда, как дела?".
На gigaAM – 83-110 мс (на разные реплики - данные из предыдущих метрик).
Обе модели на mac-mini м4 16GB, с прогревом.
Чтобы было ощущение реального разговора с ассистентом, локальные llm не особо подходят. Долго думают. Самый быстрый ответ приходит от Cerebras – 200-500 мс. А вот про wake, vad, stt и tts локально – вам выше правильно написали. Только вместо whisper лучше взять gigaAM, она быстрее работает. Если хорошо помню, на порядок быстрее.