Бот превращает аудио в текст [TELEGRAM]

TimurkaBeats

Команда Форума
Модератор
Сообщения
114
Реакции
42
Привет АнонимЧитец!


Сейчас я покажу как сделать бота который превращает аудио сообщение в текст

Вот код самого бота

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()


Вот и все! Остальное можете добавить сами
 

DYDO

Следопыт
Сообщения
60
Реакции
0
А можно сделать, чтобы любую алдиу запись в текстовик делало?
 

Arfens

Исследователь
Сообщения
27
Реакции
0
Спасибо, а то подписку покупать мало смысла
 

Кто

Исследователь
Сообщения
25
Реакции
1
Привет АнонимЧитец!


Сейчас я покажу как сделать бота который превращает аудио сообщение в текст

Вот код самого бота

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()


Вот и все! Остальное можете добавить сами
Заебомба
 

inns

Исследователь
Сообщения
21
Реакции
0
в копилку, пригодится всегда
 

Uma_famiki

Новичок
Сообщения
7
Реакции
0
Привет АнонимЧитец!


Сейчас я покажу как сделать бота который превращает аудио сообщение в текст

Вот код самого бота

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()


Вот и все! Остальное можете добавить сами
спасибо
 
Верх Низ