如何检查Pepper是否正在通话

2024-07-04 09:14:41 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种方法来接收信息,如果目前机器人正在说话或不说话。 我看过ALDialog和ALTextToSpeech API,但没有找到任何有用的东西。在

我正在寻找类似ALDialog.isSpeaking()的东西,如果Pepper当前正在说什么,则返回'True',如果他在方法调用的时候没有说话,则返回'False'。在


Tags: 方法api信息falsetrue机器人pepperaltexttospeech
2条回答

我也在寻找一种像你描述的方法,但是没有找到。 我做了一个变通办法,检查扬声器是否在播放。那就是说话,演奏音乐等

# initialize
self.boolSpeakersPlaying = True
self.audioDevice = self.session.service("ALAudioDevice")
self.signalID = self.audioDevice.speakersPlaying.connect(self.signalReceived)

#main
def signalReceived(self, arg):
self.logger.info("signal changed to = " + str(arg))
self.boolSpeakersPlaying = arg

def spam(self):
if not self.boolSpeakersPlaying:
    #do something 

在ALMemory里有各种各样的信息,你可以订阅这些信息,给你关于说话的信息,甚至更精确地说:你现在说的是哪个单词。。。在

JVoyage [0] ~ $ qicli call ALMemory.getDataList ALTextToSpeech
["ALTextToSpeech/CurrentSentence","ALTextToSpeech/PositionOfCurrentWord",
"ALTextToSpeech/CurrentBookMark","ALTextToSpeech/TextStarted","ALTextToSpeech/TextDone",
"ALTextToSpeech/Status","ALTextToSpeech/CurrentWord","ALTextToSpeech/TextInterrupted"]

更多详细信息:http://doc.aldebaran.com/2-1/naoqi/audio/altexttospeech-api.html#ALTextToSpeech/Status

相关问题 更多 >

    热门问题