我希望我的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 tutorial将PYTHONPATH
设置为C:\Users\<user>\<path>\pynaoqi-python2.7-2.5.5.5-win32-vs2013\lib
,但是仍然遇到相同的错误。
关于我能做什么的任何想法?
Windows 10上的Python 2.7
答案 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])