| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import PicoVoice.Porcupine as pc
- import PicoVoice.Rhino as rh
- from pvrecorder import PvRecorder
- class PicoVoice(object):
- instance = None
- @staticmethod
- def getInstance():
- if PicoVoice.instance==None:
- PicoVoice.instance = PicoVoice()
- return PicoVoice.instance
- def __init__(self):
- self._porcupine = pc.Porcupine.getInstance()
- self._rhino = rh.Rhino.getInstance()
- self._porcupine.RegisterFunc(self.OnWeakWord)
- self._weakwordFunc = []
- def start(self):
- self._porcupine.start()
- @property
- def Porcupine(self):
- return self._porcupine
- @property
- def Rhino(self):
- return self._rhino
- def OnWeakWord(self, index:int, weakword:str, isAdmin:bool):
- print(f"OnWeakWord({index}, '{weakword}', {isAdmin})")
- #Schnake.Schnake.getInstance().Send("/Weakword",weakword)
- sindex=str(index)
- for itm in self._weakwordFunc:
- if itm["weakword"]==sindex or itm["weakword"]==weakword or itm["weakword"]=="" or itm["weakword"]=="*" or weakword=="*":
- itm["func"](index,weakword)
- def RegisterOnWeakWord(self, func, weakword = "*"):
- res={"func": func, "weakword": weakword}
- self._weakwordFunc.append(res)
- @staticmethod
- def show_audio_devices():
- devices = PvRecorder.get_audio_devices()
- for i in range(len(devices)):
- print("index: "+str(i)+", device name: '"+devices[i]+"'")
|