Skip to content

Commit

Permalink
added comamnd processing and try-except in recognizing voice
Browse files Browse the repository at this point in the history
  • Loading branch information
janinainfa committed May 26, 2024
1 parent 67bf189 commit 5c822c4
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 15 deletions.
4 changes: 3 additions & 1 deletion main.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import window
import voice_operations as vo
import process_command as pc

if __name__ == "__main__":
vo.speak("Dzień dobry")
window.buildApp()
commandProcessing = pc.CommandProcessing()
window.buildApp(commandProcessing)
8 changes: 4 additions & 4 deletions main_ui.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ def setupUi(self, MainWindow):
MainWindow.setStatusBar(self.statusbar)
self.action_Ustawienia = QtWidgets.QAction(MainWindow)
self.action_Ustawienia.setObjectName("action_Ustawienia")
self.action_Zako_cz = QtWidgets.QAction(MainWindow)
self.action_Zako_cz.setObjectName("action_Zako_cz")
self.action_Zakoncz = QtWidgets.QAction(MainWindow)
self.action_Zakoncz.setObjectName("action_Zakoncz")
self.menu_Plik.addAction(self.action_Ustawienia)
self.menu_Plik.addAction(self.action_Zako_cz)
self.menu_Plik.addAction(self.action_Zakoncz)
self.menubar.addAction(self.menu_Plik.menuAction())

self.retranslateUi(MainWindow)
Expand All @@ -57,4 +57,4 @@ def retranslateUi(self, MainWindow):
self.stateLabel.setText(_translate("MainWindow", "Ładowanie..."))
self.menu_Plik.setTitle(_translate("MainWindow", "&Plik"))
self.action_Ustawienia.setText(_translate("MainWindow", "&Ustawienia"))
self.action_Zako_cz.setText(_translate("MainWindow", "&Zakończ"))
self.action_Zakoncz.setText(_translate("MainWindow", "&Zakończ"))
9 changes: 9 additions & 0 deletions process_command.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
from voice_operations import *

class CommandProcessing():
def __init__(self):
pass

def processCommand(self, window):
command = takeVoice(3, window)
window.stateLabel.setText(command)
4 changes: 2 additions & 2 deletions ui/Main.ui
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
<string>&amp;Plik</string>
</property>
<addaction name="action_Ustawienia"/>
<addaction name="action_Zako_cz"/>
<addaction name="action_Zakoncz"/>
</widget>
<addaction name="menu_Plik"/>
</widget>
Expand All @@ -67,7 +67,7 @@
<string>&amp;Ustawienia</string>
</property>
</action>
<action name="action_Zako_cz">
<action name="action_Zakoncz">
<property name="text">
<string>&amp;Zakończ</string>
</property>
Expand Down
20 changes: 16 additions & 4 deletions voice_operations.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,30 @@ def speak(text):
sound = AudioSegment.from_mp3('output.mp3')
play(sound)

def takeVoice(time):

def takeVoice(time, window=None):
r = sr.Recognizer()
speak('Mów')
print("Nagrywanie")
printText("Nagrywanie", window)
myrecording = sd.rec(int(time * 44100), samplerate=44100, channels=2)
sd.wait() # Wait until recording is finished
sf.write('input.flac', myrecording, 44100) # Save as WAV file
print("Rozpoznawanie")
printText("Rozpoznawanie", window)

file = sr.AudioFile('input.flac')

with file as source:
audio = r.record(source)

return r.recognize_google(audio, language="pl-PL")
try:
return r.recognize_google(audio, language="pl-PL")
except:
speak("Nie udało się rozpoznać tekstu.")
return ""

def printText(text, window):
if window:
window.stateLabel.setText(text)
window.repaint()
else:
print(text)
10 changes: 6 additions & 4 deletions window.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,20 @@


class Window(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
def __init__(self, command_processing, parent=None):
super().__init__(parent)
self.setupUi(self)
self.connectSignalsSlots()
self.commandProcessing = command_processing


def connectSignalsSlots(self):
pass
self.action_Zakoncz.triggered.connect(self.close)
self.speakButton.pressed.connect(lambda: self.commandProcessing.processCommand(self))

def buildApp():
def buildApp(command_processing):
app = QApplication(sys.argv)
win = Window()
win = Window(command_processing)
apply_stylesheet(app, theme='dark_blue.xml')
win.show()
sys.exit(app.exec())

0 comments on commit 5c822c4

Please sign in to comment.