入门篇(6)获取NAO机器人麦克风数据进行相关处理

前言

前一段时间,有位做声学处理的同学问我,在NAO机器人上做声学实验,怎么获取机器人的麦克风数据。好吧,渣渣的我给她说了一下。现在分享出来。

环境

win10安装python2.7 32位:
https://www.python.org/ftp/python/2.7.14/python-2.7.14.msi
下载pythonnaoqi SDK包:
https://community.ald.softbankrobotics.com/en/resources/software/language/en-gb
当然需要账号密码登录啦。

保存麦克风数据

官方API网址:

http://doc.aldebaran.com/2-1/naoqi/audio/alaudiorecorder-api.html#alaudiorecorder-api

ALAudioRecorder

Nao机器人录音模块;
可以录音成“wav” / “OGG”格式;

Performances and Limitations

  • four channels 48000Hz in OGG.
  • four channels 48000Hz in WAV.
  • one channels (front, rear, left or right), 16000Hz, in OGG.
  • one channels (front, rear, left or right), 16000Hz, in WAV.
#录音一段时间,再播放录音
import argparse
from naoqi import ALProxy
import time

tts = audio = record = aup = None 

def main(robot_IP, robot_PORT=9559):
    global tts, audio, record, aup 
    # ----------> Connect to robot <----------
    tts = ALProxy("ALTextToSpeech", robot_IP, robot_PORT)
    audio = ALProxy("ALAudioDevice", robot_IP, robot_PORT)
    record = ALProxy("ALAudioRecorder", robot_IP, robot_PORT)
    aup = ALProxy("ALAudioPlayer", robot_IP, robot_PORT)
    # ----------> recording <----------
    print 'start recording...'
    record_path = '/home/nao/record.wav'
    record.startMicrophonesRecording(record_path, 'wav', 16000, (0,0,1,0))
    time.sleep(10)
    record.stopMicrophonesRecording()
    print 'record over'


    # ----------> playing the recorded file <----------
    fileID = aup.playFile(record_path, 0.7, 0)  

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--ip", type=str, default="192.168.2.100", help="Robot ip address")#IP"192.168.2.100"改成当前NAO的IP地址
    parser.add_argument("--port", type=int, default=9559, help="Robot port number")
    args = parser.parse_args()
    # ----------> 执行main函数 <----------
    main(args.ip, args.port)

将录音拷贝出来

如果是Linux,当然ssh一下就行了,若是Windows,那就使用winscp吧。
打开winscp,然后输入NAO当前IP,输入用户名和密码(nao,nao),然后将/home/nao/record.wav拷贝出来。

猜你喜欢

转载自blog.csdn.net/zz683693/article/details/79056708