• XSS.stack #1 – первый литературный журнал от юзеров форума

Исходники бота, который превращает аудио-сообщения в текст [TELEGRAM]

EmeliRouse

RAID-массив
Пользователь
Регистрация
28.06.2020
Сообщения
59
Реакции
138
Скрытый контент для зарегистрированных пользователей.

Python:
import speech_recognition as sr
from telebot import types
import soundfile as sf
import urllib.request
import subprocess
import requests
import telebot
import json
import os

bot = telebot.TeleBot('ТОКЕН ВАШЕГО БОТА')
s = requests.session()

def wav2text(dest_filename, id, file_name):
    r = sr.Recognizer()
    message = sr.AudioFile(dest_filename)

    with message as source:
        audio = r.record(source)
    try:
        result = r.recognize_google(audio, language="ru_RU")
        bot.send_message(id, format(result))
        os.remove(dest_filename)
        os.remove(file_name)

    except sr.UnknownValueError:
        bot.send_message(id, 'Не удалось распознать текст')
        os.remove(dest_filename)
        os.remove(file_name)

def oga2wav(file_name, id):
    src_filename = file_name
    dest_filename = file_name + '.wav'
    process = subprocess.run(['ffmpeg', '-i', src_filename, dest_filename])
    wav2text(dest_filename, id, file_name)

def donwload(file_path, file_id, id):
    url = 'https://api.telegram.org/file/botТОКЕН ВАШЕГО БОТА/' + file_path
    urllib.request.urlretrieve(url, file_id + '.oga')
    file_name = file_id + '.oga'
    oga2wav(file_name, id)

def request2text(file_id, id):
    r = s.get('https://api.telegram.org/botТОКЕН ВАШЕГО БОТА/getFile?file_id=' + file_id)
    r = json.loads(r.text)

    donwload(r['result']['file_path'], r['result']['file_id'], id)

@bot.message_handler(content_types=['text'])
def start_message(message):
    bot.send_message(message.chat.id, 'Пришли / Перешли мне любое аудиосообщение')

@bot.message_handler(content_types=['voice'])
def start_message(message):
    request2text(message.voice.file_id, message.chat.id)

bot.polling()
Нужные библиотеки:
- soundfile
- telebot
- requests
- SpeechRecognition


А ещё нужно установить ffmpeg и добавить его в PATH

 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх