From 5feb9e0adcc64a4fabce9741c9cb5d100814846e Mon Sep 17 00:00:00 2001 From: insert Date: Mon, 12 Aug 2024 08:41:53 -0400 Subject: [PATCH] Update --- transcription.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/transcription.py b/transcription.py index ca005b6..fa59b07 100644 --- a/transcription.py +++ b/transcription.py @@ -6,6 +6,7 @@ import asyncio from pydub import AudioSegment import numpy as np import speech_recognition as sr +import whisper def prepaudio(audiofile): st = sr.Recognizer() @@ -21,21 +22,21 @@ class transcription(commands.Cog): def __init__(self, bot: commands.Bot): self.bot = bot self.st = sr.Recognizer() + self.model = whisper.load_model("base") - @nextcord.message_command(name="Transcribe Using Sphinx") - async def transcribesphinx(self, interaction: nextcord.Interaction, message: nextcord.Message): - try: - await interaction.response.defer(ephemeral='true') - await message.attachments[0].save("audio.ogg") - embed=nextcord.Embed(title="Audio Transcription",description=self.st.recognize_sphinx(prepaudio("audio.ogg")), color=0x3584e4) - embed.set_author(name=message.author.display_name, url=message.jump_url, icon_url=message.author.display_avatar) - embed.set_footer(text="Accuracy not guaranteed") - await interaction.edit_original_message(embed=embed) - os.remove("audio.ogg") - os.remove("audio.wav") - except Exception as e: - await interaction.edit_original_message(content=f'an error appears to have occoured please report it to the developer: {e}') + @nextcord.message_command(name="Transcribe Using Whisper") + async def transcribewhisper(self, interaction: nextcord.Interaction, message: nextcord.Message): + await interaction.response.defer(ephemeral='true') + await message.attachments[0].save("audio.ogg") + oggfile = AudioSegment.from_ogg("audio.ogg") + oggfile.export("audio.mp3", format="mp3") + embed=nextcord.Embed(title="Audio Transcription",description=self.model.transcribe("audio.mp3")["text"], color=0x3584e4) + embed.set_author(name=message.author.display_name, url=message.jump_url, icon_url=message.author.display_avatar) + embed.set_footer(text="Accuracy not guaranteed") + await interaction.edit_original_message(embed=embed) + os.remove("audio.ogg") + os.remove("audio.mp3") @nextcord.message_command(name="Transcribe Using Google") async def transcribegoogle(self, interaction: nextcord.Interaction, message: nextcord.Message):