Try catch audio error
This commit is contained in:
parent
484542de8d
commit
23471e4ec0
3 changed files with 17 additions and 6 deletions
|
@ -536,7 +536,8 @@ class HugveyState(object):
|
||||||
# detect missing heartbeat:
|
# detect missing heartbeat:
|
||||||
if self.isConfigured and time.time() - self.isConfigured > 15:
|
if self.isConfigured and time.time() - self.isConfigured > 15:
|
||||||
self.logger.error("Hugvey did not send heartbeat.")
|
self.logger.error("Hugvey did not send heartbeat.")
|
||||||
self.gone()
|
# self.gone()
|
||||||
|
self.shutdown()
|
||||||
continue
|
continue
|
||||||
|
|
||||||
self.logger.debug("Received: {}".format(event))
|
self.logger.debug("Received: {}".format(event))
|
||||||
|
@ -762,4 +763,4 @@ class HugveyState(object):
|
||||||
self.logger.critical(f"stream has left the building from {self.ip}")
|
self.logger.critical(f"stream has left the building from {self.ip}")
|
||||||
self.eventLogger.critical(f"error: stream has left the building from {self.ip}")
|
self.eventLogger.critical(f"error: stream has left the building from {self.ip}")
|
||||||
# if we end up here, the streamer finished, probably meaning hte hugvey shutdown
|
# if we end up here, the streamer finished, probably meaning hte hugvey shutdown
|
||||||
self.gone()
|
# self.gone()
|
||||||
|
|
|
@ -18,6 +18,7 @@ import queue
|
||||||
import uuid
|
import uuid
|
||||||
from hugvey.communication import LOG_BS
|
from hugvey.communication import LOG_BS
|
||||||
import audioop
|
import audioop
|
||||||
|
import gc
|
||||||
|
|
||||||
mainLogger = logging.getLogger("hugvey")
|
mainLogger = logging.getLogger("hugvey")
|
||||||
logger = mainLogger.getChild("google")
|
logger = mainLogger.getChild("google")
|
||||||
|
@ -181,6 +182,10 @@ class GoogleVoiceClient(object):
|
||||||
self.hugvey.queueEvent(msg)
|
self.hugvey.queueEvent(msg)
|
||||||
self.logger.warn("Stop google run()") # finish means wrapping of hugvey#3v thread
|
self.logger.warn("Stop google run()") # finish means wrapping of hugvey#3v thread
|
||||||
|
|
||||||
|
# time.sleep(1)
|
||||||
|
# for i in gc.get_referrers(self):
|
||||||
|
# print(i)
|
||||||
|
|
||||||
|
|
||||||
def receive(self, chunk):
|
def receive(self, chunk):
|
||||||
if not self.task.isAlive():
|
if not self.task.isAlive():
|
||||||
|
|
|
@ -1418,10 +1418,15 @@ class Story(object):
|
||||||
fn = await message.getAudioFilePath()
|
fn = await message.getAudioFilePath()
|
||||||
|
|
||||||
# get duration of audio file, so the client can detect a hang of 'play'
|
# get duration of audio file, so the client can detect a hang of 'play'
|
||||||
with wave.open(fn,'r') as fp:
|
try:
|
||||||
frames = fp.getnframes()
|
with wave.open(fn,'r') as fp:
|
||||||
rate = fp.getframerate()
|
frames = fp.getnframes()
|
||||||
duration = frames/float(rate)
|
rate = fp.getframerate()
|
||||||
|
duration = frames/float(rate)
|
||||||
|
except Exception as e:
|
||||||
|
self.hugvey.eventLogger.critical(f"error: crash when reading wave file: {fn}")
|
||||||
|
self.logger.critical(f"error: crash when reading wave file: {fn}")
|
||||||
|
duration = 10 # some default duration to have something to fall back to
|
||||||
|
|
||||||
# self.hugvey.google.pause() # pause STT to avoid text events while decision is made
|
# self.hugvey.google.pause() # pause STT to avoid text events while decision is made
|
||||||
self.hugvey.sendCommand({
|
self.hugvey.sendCommand({
|
||||||
|
|
Loading…
Reference in a new issue