Загрузка...

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

Тема в разделе Python создана пользователем MORTY 23 окт 2019. 1130 просмотров

  1. MORTY
    MORTY Автор темы 23 окт 2019 i ball was rawt 11 021 13 окт 2018
    Рабочее демо - @voicemess2text_bot
    Вам чет не зашло, так что вот код:
    Код
    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

    Даже аву вам дам :finger_up:
    [IMG]
     
    23 окт 2019 Изменено
  2. Donate
    Морти,можно я сделаю мануал с твоим скриптом?)
     
  3. Shelff
    Shelff 23 окт 2019 Заблокирован(а)
    @Donate, можно.
     
  4. MORTY
    MORTY Автор темы 23 окт 2019 i ball was rawt 11 021 13 окт 2018
    ок)
     
  5. Shelff
    Shelff 6 ноя 2019 Заблокирован(а)
  6. Vuitton_inactive445016
    Shelff, баян, не копипаст. Да и о нуле не точно.
     
Загрузка...
Top