- 04.11.23
- 16
- 10,000 ₽
- 1
Чтобы видеть изображения, необходимо зарегистрироваться.
⚡️ [SOURCE] Groq AI Transcriber Bot | by VerifS
Серия бесплатных скриптов от сервиса VerifS. Выпуск #1
👋 Привет, форум!
На связи команда VerifS. Мы решили запустить рубрику с полезными разработками на Python.
Это первая тема из серии — наш бот для мгновенного перевода голосовых и видео в текст.
Просто перешлите ему голосовое, видеокружок, аудио или видео файл и он расшифрует. Или добавьте в свою группу и он будет расшифровывать все сообщения от пользователей
🧐 Что это такое?
Бот, который спасает от прослушивания голосовых.
Разработан нами на базе API Groq (модель Whisper-large-v3), поэтому работает молниеносно и очень точно, расставляя знаки препинания.
🚀 Возможности скрипта
- 🎙 Всеядность: Поддерживает голосовые (.ogg), видео-сообщения, mp3 и mp4 файлы.
- ⚡️ Скорость: Groq обрабатывает аудио почти мгновенно.
- 🔄 Авто-конвертер: Встроенный FFmpeg сам приводит файлы к нужному формату.
- ✂️ Smart Split: Если расшифровка большая, бот сам разобьет её на части.
- 🧹 Чистота: Временные файлы удаляются сразу после обработки.
💻 Исходный код (Python)
Код чистый, без лишнего мусора. Для работы нужны библиотеки
Код:
pyTelegramBotAPI
Код:
groq
Чтобы видеть ссылки, необходимо зарегистрироваться.
Код:
import os
import telebot
from groq import Groq
import subprocess
BOT_TOKEN = ""
GROQ_API_KEY = ""
bot = telebot.TeleBot(BOT_TOKEN)
client = Groq(api_key=GROQ_API_KEY)
TEMP_DIR = "/bots/aud/temp_files"
if not os.path.exists(TEMP_DIR):
os.makedirs(TEMP_DIR)
def extract_audio(input_path, output_path):
command = [
'ffmpeg', '-i', input_path,
'-vn',
'-acodec', 'libmp3lame',
'-q:a', '4',
'-y',
output_path
]
subprocess.run(command, check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
def transcribe_groq(file_path):
with open(file_path, "rb") as file:
transcription = client.audio.transcriptions.create(
file=(file_path, file.read()),
model="whisper-large-v3",
response_format="json",
language="ru",
temperature=0.0
)
return transcription.text
@bot.message_handler(content_types=['voice', 'video_note', 'audio', 'video'])
def handle_files(message):
status_msg = bot.reply_to(message, "⏳ Думаю...")
input_filename = None
output_filename = None
try:
if message.voice:
file_id = message.voice.file_id
ext = ".ogg"
elif message.video_note:
file_id = message.video_note.file_id
ext = ".mp4"
elif message.video:
file_id = message.video.file_id
ext = ".mp4"
elif message.audio:
file_id = message.audio.file_id
ext = ".mp3"
else:
return
file_info = bot.get_file(file_id)
downloaded_file = bot.download_file(file_info.file_path)
input_filename = os.path.join(TEMP_DIR, f"{file_id}{ext}")
output_filename = os.path.join(TEMP_DIR, f"{file_id}_cov.mp3")
with open(input_filename, 'wb') as new_file:
new_file.write(downloaded_file)
extract_audio(input_filename, output_filename)
text = transcribe_groq(output_filename)
if not text:
text = "Тишина..."
if len(text) > 4000:
bot.edit_message_text(chat_id=message.chat.id, message_id=status_msg.message_id, text=text[:4000])
for x in range(4000, len(text), 4000):
bot.send_message(message.chat.id, text[x:x+4000])
else:
bot.edit_message_text(chat_id=message.chat.id, message_id=status_msg.message_id, text=text)
except Exception as e:
error_text = f"❌ Ошибка: {str(e)}"
print(f"ERROR: {e}")
bot.edit_message_text(chat_id=message.chat.id, message_id=status_msg.message_id, text=error_text)
finally:
if input_filename and os.path.exists(input_filename): os.remove(input_filename)
if output_filename and os.path.exists(output_filename): os.remove(output_filename)
print("Бот Groq запущен!")
bot.polling(non_stop=True)
🛠 Не получается запустить?
Если скрипт выдает ошибки или нет времени разбираться — пишите.
Сервис VerifS поможет установить этого бота под ключ, а также разработает любых других ботов под ваши задачи.
Связь с разработчиком:
Чтобы видеть ссылки, необходимо зарегистрироваться.
⚠️ Автор объявления —
непроверенный пользователь
.
Используйте
гарант-сервис форума,
чтобы избежать рисков.