mirror of
https://github.com/BoardWare-Genius/jarvis-models.git
synced 2025-12-14 00:53:25 +00:00
first commit
This commit is contained in:
22
src/blackbox/audio_to_text.py
Normal file
22
src/blackbox/audio_to_text.py
Normal file
@ -0,0 +1,22 @@
|
||||
import speech_recognition as sr
|
||||
import filetype
|
||||
import io
|
||||
|
||||
from blackbox.blackbox import Blackbox
|
||||
|
||||
class AudioToText(Blackbox):
|
||||
|
||||
def valid(self, data: any) -> bool :
|
||||
kind = filetype.guess(data)
|
||||
if kind is None:
|
||||
return False
|
||||
return kind.mime == "audio/wav"
|
||||
|
||||
def processing(self, data: io.BytesIO):
|
||||
if not self.valid(data):
|
||||
raise ValueError("Invalid data")
|
||||
r = sr.Recognizer()
|
||||
with sr.AudioFile(data) as source:
|
||||
audio_data = r.record(source)
|
||||
text = r.recognize_google(audio_data)
|
||||
return text
|
||||
18
src/blackbox/blackbox.py
Normal file
18
src/blackbox/blackbox.py
Normal file
@ -0,0 +1,18 @@
|
||||
from abc import ABC, abstractmethod
|
||||
|
||||
|
||||
class Blackbox(ABC):
|
||||
|
||||
@abstractmethod
|
||||
def processing(self, data: any):
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def valid(self, data: any) -> bool:
|
||||
pass
|
||||
|
||||
class TextToAudio(Blackbox):
|
||||
|
||||
def processing(self, data: any):
|
||||
print("TextToAudio processing")
|
||||
|
||||
Reference in New Issue
Block a user