first commit

This commit is contained in:
Dan Chen
2024-03-18 11:33:39 +08:00
commit 813e584b97
11 changed files with 258 additions and 0 deletions

View 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
View 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")