在 Pepper 机器人上录制声音时出错

Error when recording sound on Pepper robot

我想让我的 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,但我仍然遇到同样的错误。

关于我能做什么有什么想法吗?

Python 2.7 Windows 10.

你试过一个参数吗?

你命名的NAOqi v2.5 Link,指的是ALAudioRecorder和C++。 "old Version" 指的是 Python ALAudioDeviceALAudioDevice 的 NAOqi v2.5 Python API 描述 here.

对我来说,这些 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()

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

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