声源定位专项_声源定位算法

声源定位专项_声源定位算法之前发布了一款声源定位机器人,但是其中还包括图像处理和超声波传感器,以及单片机开发的内容,对于专门想要研究声源定位的朋友可能过于复杂。这次把声源定位的程序摘取出来,并且保证可以独立运行(只需要放到镜像里项目文件夹下),给想研究声源定位的朋友参考。#!/usr/bin/envpythonimportsocketimportsysimportthreadingimportr…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

之前发布了一款声源定位机器人,但是其中还包括图像处理和超声波传感器,以及单片机开发的内容,对于专门想要研究声源定位的朋友可能过于复杂。

这次把声源定位的程序摘取出来,并且保证可以独立运行(只需要放到镜像里项目文件夹下),给想研究声源定位的朋友参考。

#!/usr/bin/env python
import socket
import sys
import threading
import random
import os
import time
import struct

import Image, StringIO
import numpy as np


from voice_engine.source import Source
from voice_engine.channel_picker import ChannelPicker
from voice_engine.doa_respeaker_4mic_array import DOA
from pixels import pixels

import datetime


exit_now = 0

last_movement_timestamp = datetime.datetime.now()


def exit_signal_handle(sig,stack_frame):
    global exit_now
    print "EXIT sig"
    exit_now = 1


def main():
    global last_movement_timestamp
    src = Source(rate=16000, channels=4, frames_size=320)
    doa = DOA(rate=16000)
    src.link(doa)
    src.recursive_start()


    while exit_now == 0:
        try:
            time.sleep(1)
            current_timestamp = datetime.datetime.now()
            if ((current_timestamp - last_movement_timestamp).seconds > 2):
                position, amplitute = doa.get_direction()
                if amplitute > 2000:
                    pixels.wakeup(position)
                    print "doa",amplitute,position
                    if position > 0  and position < 180:
                        print "pivot right"
                        time.sleep(position/200)
                    elif position >= 180 and position < 360:
                        print "pivot left"
                        position = 360 - position
                        time.sleep(position/200)
                    time.sleep(2)
                else:
                    pixels.speak()
            else:
                pixels.think()
        except:
            print "doa", sys.exc_info()
    src.recursive_stop()

if __name__ == "__main__":
    main()

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190779.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux下使用vsftpd架设FTP服务器过程

    Linux下使用vsftpd架设FTP服务器过程FTP可以通过很多软件实现,我们linux下面最常用的FTP服务器架设使用vsftpd软件vsftpd是一个基于GPL发布的FTP服务器软件。其中的vs是“VerySecure”的缩写,由此名称缩写可以看出,本服务器的初衷就是服务的安全性。当然,vsftpd也是REDHAT默认安装的ftp服务器软件后台进程:vsftpd类型:SystemV服务使用端口:2…

    2022年7月21日
    12
  • 论latex插入图片最好的方法!

    论latex插入图片最好的方法!在写过几篇论文后总结出来的一些写论文新手都会遇到的插入图片问题的最高效的解决方法,这是本人在摸索了很多次以后总结出来的方法希望后人可以少走些弯路。毕竟这种小问题读研的时候老师师兄师姐都不会告诉你的都是要靠你自己去解决的。

    2022年6月1日
    45
  • mybatiscodehelperpro使用_ios10越狱后必装插件

    mybatiscodehelperpro使用_ios10越狱后必装插件目录一、前言二、安装插件MyBatisCodeHelperPro插件三、激活一、前言在开发中编写生成bean,mapper,mapper.xml即费时也费力,可以通过MyBatisCodeHelperPro自动生成bean,dao,mapper.xml等文件,然后根据自己的需要进行修改。MyBatisCodeHelperPro是IDEA下的一个插件,类似于mybatisplugin,但是是收费的,但可以进行激活使用:下面这个大佬的个人主页上有多个版本的下载链…

    2022年4月19日
    98
  • 走进计算机病毒-基础知识「建议收藏」

    走进计算机病毒-基础知识「建议收藏」计算机病毒可通过注册表来完成其目的

    2022年5月3日
    51
  • JAVA 中 labeled break 语句

    JAVA 中 labeled break 语句

    2021年9月29日
    44
  • 详解卷积反卷积操作

    详解卷积反卷积操作TransposedConvolution,FractionallyStridedConvolutionorDeconvolution Postedon 2016-10-29反卷积(Deconvolution)的概念第一次出现是Zeiler在2010年发表的论文Deconvolutionalnetworks中,但是并没有指定反卷积这个名字

    2022年5月17日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号