在Pepper机械手上录制声音时出错

时间:2019-01-23 13:22:26

标签: python python-2.7 nao-robot pepper

我希望我的Pepper机器人使用startMicrophonesRecording()录制一段音频。在NAOqi v2.5中,它接受四个参数(路径,类型,赫兹和麦克风)。尝试运行

AD.startMicrophonesRecording("/data/home/nao/recordings/microphones/test.wav","wav",16000,(0,0,1,0))

但是我收到错误消息

RuntimeError: Arguments types did not match for startMicrophonesRecording (resolved to '(ssi(iiii))'): 
Candidate: 
  startMicrophonesRecording::(s) (1)

似乎startMicrophonesRecording()只需要一个参数。我在past versions函数中看到它曾经仅以文件路径作为参数,所以也许Python正在为模块寻找NAOqi的过去版本?

我尝试使用this tutorialPYTHONPATH设置为C:\Users\<user>\<path>\pynaoqi-python2.7-2.5.5.5-win32-vs2013\lib,但是仍然遇到相同的错误。

关于我能做什么的任何想法?

Windows 10上的Python 2.7

2 个答案:

答案 0 :(得分:2)

您尝试过一个参数吗?

您命名的NAOqi v2.5 Link是指 ALAudioRecorder 和C ++。 “旧版本”是指Python ALAudioDevice here说明了用于 ALAudioDevice 的NAOqi v2.5 Python API。

对我来说,这些python代码段效果很好:

ALAudioDevice

import naoqi
from naoqi import ALProxy
AD = ALProxy("ALAudioDevice", "pepper.local", 9559)
AD.startMicrophonesRecording("/data/home/nao/recordings/microphones/test.wav")
AD.stopMicrophonesRecording()

ALAudioRecorder

import naoqi
from naoqi import ALProxy
AR = ALProxy("ALAudioRecorder", "pepper.local", 9559)
AR.startMicrophonesRecording("/data/home/nao/recordings/microphones/test.wav","wav",16000,(0,0,1,0))
AR.stopMicrophonesRecording()

答案 1 :(得分:0)

您选择麦克风的语法看起来不正确。 使用方括号[]代替括号():

    rec = self.session().service("ALAudioRecorder")
    rec.startMicrophonesRecording(fname, 'wav', 16000, [0,0,1,0])