Запилили TG-бота для склейки голосовух - https://t.me/voicemixbot
👍 Зачем.
Сложно наговорить длинную 3-минутную мысль за раз красиво. Вместо этого, ясно произнеси отдельные фразы по 5 сек друг за другом, продумав каждую.
Мысль приходит только на улице во время прогулки и с собой только телега, монтировать дома никто не будет, а итоговая цельная голосовуха с красивой мыслью нужна уже сейчас чтобы кому-то переслать.
Хочешь записать инновационный трек из склейки пердежа, скрипа двери и крика бомжей в метро, но прямо сейчас без инвестиций в монтаж и продюсирование.
🧰 Как пользоваться.
Заходим в @voicemixbot - ему уйдёт команда
start.Шлем голосовухи друг за другом. После каждой видим
ADD N, где N - её порядковый номер (начиная с нуля). Это значит, голосовой кусок вставился в ряд. Не говори следующую голосовуху, пока не получил ADD.Удалить последнюю голосовуху -
pop. Когда понял, что последней голосовухе нужен новый дубль. ВернётSIZE N, где N - новое общее число эпизодов в проекте.Всё сказал: пишем
makeилиgo. Получаем цельный файл. Забыл что-то сказать - докидываем голосовух в конец и сноваmake.Пишем
clearесли надо начать новый файл.
💎 Команды.
clear- забыть всё, начать новый проектinfo- статус текущего проектаmake- склеить текущий проект (цепь голосовух) в один файлname TEXT- указать название TEXT для вашей итоговой записиpop- удалить последнюю голосовуху из стекаamp 1илиamp 0- включить или выключить автоусиление тихой речи.bitrate N- установить битрейт, где N - между2000и5000023000- достаточно для прилично звучащей речиmk N MESSAGE- поставить текстовую метку MESSAGE перед куском номер N. Нумерация с нуля. N - это тот номер, который фигурирует в ответе "ADD"fade N, N - число миллисекунд: длительность плавного перехода между фразами.
Метки.
00:00 - Приветствие 00:21 - Музыка 00:31 - Новости 01:04 - О погоде
Чтобы получить такую таблицу временных меток под записью, отправляй нужный текст перед той голосовухой, на начало которой этот текст должен ссылаться. Текстом считается любой текст, которого нет в таблице команд. Если вы хотели поставить метку перед уже отправленной голосовухой, но забыли это сделать, то используйте команду mk N (см выше).
🔌 Технические детали.
Кодируем речь кодеком OPUS, он прекрасно звучит даже на битрейте 24k, где mp3 бы уже умер. "/" в начале команды не важен. /pop и pop работают одинаково. Цепь голосовух мы называем "проект". У каждого проекта есть уникальное случайное служебное имя вида d7_uaUcUXc0. Помнить его не надо. Команда clear создаёт новый проект с новым именем, забывая предыдущий навсегда. Лимит кусков в проекте - 200, но лучше не рисковать. make 13 минутного файла будет работать 3 минуты. Написано на голимом C++20, libopus, libogg, epoll.
⌛ Лимиты.
Одна голосовуха - не более 60 секунд.
Число голосовух в проекте - 200 штук.
Получается суммарно более 2 часов на один файл, но стало страшно. В будущем возможно порежем лимит результирующего файла чем-то на уровне 10 минут.
🔒Безопасность и надёжность.
clear удаляет голосовухи с сервера бота. Бекапов нет. ФС сервера - в ramdisk. Наговорил, скомпилил - забери себе, не растягивай проект на неделю. Сервер не стабилен, падает раз в неделю с переналивом всей OS с нуля. У админа доступ ко всем голосовухам (как у админы телеграм к личкам), но чаще падает сервер с данными, чем админу охота покопаться. Если придёт майор с бутылкой - всех сдадим, но рамдиск (может быть уже нечего). Метаданные о пользователях не собираем, спамить не будем - даже БД нет. Точнее, есть, но в рамдиске. Если сервер не отвечает, то он либо сдох и ему скоро автоматически нальют образ по вотчдогу, либо занят компиляцией чьего-то проекта - отправь команду info и подожди. Устраивать DoS и хакерство с отправкой гиговых видосов и фоток не надо: бот даже не начнёт качать. В целом, наверное вы можете его положить, но мы просто пнём сервак и он забудет всё плохое в жизни, рамдиск же.
https://t.me/voicemixbot в общем.

















