transcribe-bot/transcribebot.py

54 lines
2.2 KiB
Python
Raw Normal View History

2023-04-15 13:29:24 +00:00
import disnake
from disnake.ext import commands
from dotenv import load_dotenv
import os
2023-04-15 13:58:19 +00:00
from os import path
from pydub import AudioSegment
import speech_recognition as sr
2023-04-15 13:29:24 +00:00
2023-04-15 13:58:19 +00:00
st = sr.Recognizer()
2023-04-15 13:29:24 +00:00
load_dotenv()
bot = commands.Bot(command_prefix='.')
2023-04-16 00:00:56 +00:00
def prepaudio(audiofile):
oggfile = AudioSegment.from_ogg(audiofile)
2023-04-16 00:05:19 +00:00
oggfile.export("audio.wav", format="wav")
2023-04-16 00:00:56 +00:00
convertemessage = sr.AudioFile("audio.wav")
with convertemessage as sounds:
transcribeaudo = st.record(sounds)
return transcribeaudo
@bot.message_command(name="Transcrible Using Sphinx")
async def transcribesphinx(inter: disnake.ApplicationCommandInteraction, message: disnake.Message):
try:
await inter.response.defer(ephemeral='true')
await message.attachments[0].save("audio.ogg")
await inter.edit_original_message(content=st.recognize_sphinx(prepaudio("audio.ogg")))
os.remove("audio.ogg")
os.remove("audio.wav")
except Exception as e:
await inter.edit_original_message(content=f'an error appears to have occoured please report it to the developer: {e}')
@bot.message_command(name="Transcrible Using Google")
async def transcribesphinx(inter: disnake.ApplicationCommandInteraction, message: disnake.Message):
2023-04-15 14:45:39 +00:00
try:
await inter.response.defer(ephemeral='true')
await message.attachments[0].save("audio.ogg")
2023-04-16 00:00:56 +00:00
await inter.edit_original_message(content=st.recognize_google(prepaudio("audio.ogg")))
2023-04-15 14:45:39 +00:00
os.remove("audio.ogg")
os.remove("audio.wav")
except Exception as e:
await inter.edit_original_message(content=f'an error appears to have occoured please report it to the developer: {e}')
2023-04-16 00:00:56 +00:00
@bot.message_command(name="Transcrible Using Bing")
async def transcribesphinx(inter: disnake.ApplicationCommandInteraction, message: disnake.Message):
try:
await inter.response.defer(ephemeral='true')
await message.attachments[0].save("audio.ogg")
await inter.edit_original_message(content=st.recognize_bing(prepaudio("audio.ogg")))
os.remove("audio.ogg")
os.remove("audio.wav")
except Exception as e:
await inter.edit_original_message(content=f'an error appears to have occoured please report it to the developer: {e}')
2023-04-15 13:29:24 +00:00
bot.run(os.getenv("TOKEN"))