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

声源定位专项_声源定位算法之前发布了一款声源定位机器人,但是其中还包括图像处理和超声波传感器,以及单片机开发的内容,对于专门想要研究声源定位的朋友可能过于复杂。这次把声源定位的程序摘取出来,并且保证可以独立运行(只需要放到镜像里项目文件夹下),给想研究声源定位的朋友参考。#!/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)
上一篇 2026年2月14日 上午9:15
下一篇 2026年2月14日 上午9:43


相关推荐

  • Python 中 str.format() 方法详解

    Python 中 str.format() 方法详解Python 中 str format 方法详解文章目录 Python 中 str format 方法详解 0 参考资料 1 术语说明 2 简单字段名 2 1 简单字段名的说明 2 2 省略字段名 2 3 数字形式的简单字段名 2 4 变量名形式的简单字段名 2 5 简单字段名的混合使用 2 6 使用元组和字典传参 3 复合字段名 3 1 复合字段名的说明 3 2 点号的使用 3 3 方

    2026年3月26日
    3
  • Python多分类问题pr曲线绘制(含代码)

    Python多分类问题pr曲线绘制(含代码)研究了三天的多分类 pr 曲线问题终于在昨天晚上凌晨一点绘制成功了 现将所学所感记录一下 一来怕自己会忘可以温故一下 二来希望能给同样有疑惑的铁子们一些启迪 下图为我画的 pr 曲线 因为准确度超过了 97 所以曲线很饱和 首先了解一下二分类中的 pr 曲线是怎么画的 p 是 precition 是查准率 也是我们常用到的准确率 r 是 recall 是查全率 也叫召回率 上图为测试结果的混淆矩阵 表示一个数据集上的所有测试结果 其中竖列均为测试结果 即分类器预测概率大于 0 5 为正类 小于 0

    2025年11月24日
    5
  • matlab设计模拟带通滤波器

    matlab设计模拟带通滤波器简单记录下在matlab上如何设计出模拟的带通滤波器,包括:巴特沃斯滤波器、切比雪夫I型滤波器、切比雪夫II型滤波器、椭圆型滤波器。代码如下:%设计带通滤波器%巴特沃斯、切比雪夫I型、切比雪夫II型

    2022年7月2日
    24
  • java 高效列转行,java 列转行「建议收藏」

    java 高效列转行,java 列转行「建议收藏」一个员工在多个部门内,一个部门有多个员工List———–>Map>1.部门类publicclassDept{publicDept(Stringid){this.id=id;}privateStringid;//省略get,set方法}2.员工类publicclassUser{publicUser(Stringid)…

    2022年6月25日
    29
  • Derby 数据库使用

    Derby 数据库使用1 下载 derby 数据库 http db apache org derby derby downloads html 2 配置环境变量 G derby derby 10 10 2 0 bin 添加到 path 变量中 3 dos 下 输入 ij 回车 4 创建数据库 ij nbsp connect jdbc derby firstdb create true 5 connect

    2026年3月17日
    2
  • OpenClaw 实战:低成本搭建企业级 AI 客服与自动化销售系统

    OpenClaw 实战:低成本搭建企业级 AI 客服与自动化销售系统

    2026年3月15日
    5

发表回复

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

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