香橙派借助语音模块实现语音刷抖音

项目介绍:

本项目使用su-03t语音模块进行语音识别,将识别到的结果发送给香橙派,再由香橙派对语音模块发送的结果进行解析,最后发送指令对手机进行控制。

硬件介绍:

①:香橙派作为主控

②:语音识别模块,进行语音识别

③:一台安卓手机(鸿蒙系统也可)

su03t语音模块

1.SU-03T简介

        SU-03T 是一款低成本、低功耗、小体积的离线语音识别模组,能快速应用于智能家居,各类智能小家电,86 盒,玩具,灯具等需要语音操控的产品。通过串口通信,可以实现SU-03T模块和开发板的交互,如:OrangePi PC+、STM32等。从而控制OrangePi PC+的外设(如果将我们的手机连接到OrangePi,也可以实现对手机的控制)

        基本套餐应包括喇叭+模块主板+咪头(就是喇叭)+电源线,大概20元左右。(不需要拍300+的烧录器套餐。另外,买回来的模块并没有焊好针脚,需要自己焊接针脚。自备焊烙铁、锡丝等)

语音模块配置

①:登录智能公元平台(智能公元/AIOT快速产品化平台)并注册。

②: 创建产品,选择“快速智能化及创建产品”

已选产品选择“纯离线方案”

已选模组选择“SU-03T”

产品名称:灯

选择语言:中文

命令配置:

2. 记录下相关指令以及上图的识别词条,方便固件烧写后的调试。通过识别到的语音指令来控制语音模块向香橙派发送十六进制数(字符转换Ascall码)让香橙派进行指令判断来对手机进行操控。

3.设置完成之后等待生成和下载SDK

4.固件烧写

方法:使用CH340模块连接电脑,先电机烧录再上电即可进行烧录

香橙派配置:

什么是ADB

        安卓调试桥(ADB - Android Debug Brige)是一个客户端-服务器的(CS)端程序。其中客户端是用来操作电脑的,服务端是Android设备。

        ADB延时Android SDK中的一个工具,可以直接操作管理Android模拟器或者真实的Android设备,也就是Android程序的debug工具。

ADB安装以及udev热插拔

  1. 先安装adb(安卓调试桥)用于控制安卓手机。安装命令:sudo apt-get install adb
  2. dmseg能查看到手机接入的信息,但是输入 adb devices会出现提醒dinsufficient permissions for device: user in plugdev group; are your udevrules wrong?
  3. 配置文件,以支持USB设备的热插拔,支出UDEV的机制在/etc/udev/rules.d 文件夹下创建规则文件cd /etc/udev/rules.d/sudo vim 51-android.rules
  4. 在文件中添加内容 SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"
  5. 设备完成之后输入:adb shell进入adb

  1. 在开发者选项中,打开USB调试,重新热插拔手机
  2. 手机弹出调试提醒,电机确认手机调试模式

用shell指令来操作手机屏幕,模拟手动滑动屏幕

  1. adb shell input swipe 540 1300 540 500 100 向下滑动540是水平的,1300是竖直方向,下 是500
  2. adb shell input swipe 540 500 540 1300 100 向上滑动
  3. adb shell "seq 3 | while read i;do input tap 350 1050 & input tap 350 1050 &sleep 0.01;done;" 点赞
  4. adb shell input keyevent 26 锁屏


#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <pthread.h>
#include <wiringPi.h>
#include <wiringSerial.h>
#include <stdlib.h>

int fd;//定义全局变量文件索引,linux下一切皆文件

void *sendxiancheng()//发送线程
{
    char *sendbuff;//发送缓冲区
    sendbuff = (char *)malloc(32);//为缓冲区开辟空间

    while(1)
    {
        memset(sendbuff, '\0', 32);
        scanf("%s", sendbuff);

        while(*sendbuff)
        {
            serialPutchar (fd, *sendbuff) ;//发送字符
            sendbuff++;//位置偏移
        }
    }

}

void *receivexiancheng()//接收进线程
{
    char a;

    while(1)
    {

        while (serialDataAvail (fd))//判断是否接收到数据
        {

            a = serialGetchar(fd);

            switch(a)
            {
                case 'N':
                    printf("下一个\n");
                    system("adb shell input swipe 540 1300 540 400 100");
                    break;

                case 'P':
                    printf("上一个\n");
                    system("adb shell input swipe 540 400 540 1300 100");

                    break;

                case 'Z':
                    printf("点赞\n");
                    system(" adb shell \"seq 4 | while read i;do input tap 350 1050 & input tap 350 1050 & sleep 0.01;done;\"");
                    break;

                case 'Q':
                    printf("退出,并锁屏\n");
                    system("adb shell input keyevent 26");

                    break;
            }
        }
    }


}

int main ()
{
    int count ;

    pthread_t sendfd;//进程标识
    pthread_t recfd;

    pthread_create(&sendfd, NULL, (void *)sendxiancheng, NULL);//创建线程
    pthread_create(&recfd, NULL, (void *)receivexiancheng, NULL);

    if ((fd = serialOpen ("/dev/ttyS5", 115200)) < 0)//判断串口设备是否打开,使用串口5所以是tty5
    {
        fprintf (stderr, "Unable to open serial device: %s\n", strerror (errno)) ;
        return 1 ;
    }




    while(1)
    {
    }


    printf ("\n") ;
    return 0;
}

最终效果:

        使用语音指令可以对手机进行操作。

<think>嗯,用户想在香橙实现语音控制,需要教程或语音识别与控制的指导。首先,我得看看他们提供的引用内容里有没有相关的信息。引用1提到有个用C语言编写的智能语音控制中心,支持树莓、Nanopi和香橙Zero Plus,这可能有用。里面需要百度语音识别和图灵机器人的API Key,用户可能需要自己申请。引用4和5提到了香橙AIpro的语音识别样例和腾讯AI平台的注册,这可能也是一个途径。 用户可能已经有香橙设备,但具体型号不确定。比如引用3提到的是OrangePi Zero2,而引用4是OrangePi AIpro。不同的型号可能在配置步骤上有差异,需要提醒用户注意兼容性。另外,用户可能需要基础的操作系统设置,比如烧录镜像、配置系统环境,引用5提到了烧录镜像和腾讯AI的注册,这可能相关。 用户的问题是关于如何实现的,所以步骤需要详细。可能需要包括硬件准备(麦克风、扬声器)、软件依赖安装(比如Python库、C语言环境)、获取API密钥、配置语音识别服务、编写或下载代码,以及测试。引用1中的C程序可能需要用户有C语言基础,但用户可能希望更简单的解决方案,比如Python脚本,但引用里的例子都是C和gcc编译的,可能需要指出这点。 此外,用户可能需要知道如何连接外设,比如引用2中的语音模块通过串口连接,引用3中的UART测试。这可能涉及到硬件接线,比如UART引脚连接,配置串口设备等步骤。需要分步骤说明,比如安装声卡驱动、测试录播放,然后处理语音识别和控制逻辑。 还要注意引用中提到的环境量适配和偶发声检测,这些可能需要在代码中配置,用户可能需要调整阈值或修改代码。同时,用户可能需要扩展控制功能,比如引用1中的简单灯控,用户可能需要添加自己的控制逻辑,比如控制GPIO引脚的家电。 最后,生成相关问题时要考虑用户可能的后续问题,比如优化识别准确率、降低延迟、多语言支持或离线识别方案,以及整合其他AI服务。需要确保回答覆盖了主要步骤,并引导用户进一步探索。</think>### Orange Pi 语音控制实现步骤 #### 一、基础环境准备 1. **系统烧录** 需为Orange Pi烧录适配的操作系统(如Ubuntu或Armbian),推荐使用官方镜像。烧录工具可使用BalenaEtcher或Rufus[^5]。 ```bash # 示例:检查系统版本 lsb_release -a ``` 2. **硬件连接** 外接USB麦克风或兼容的语音模块(如LD3320),通过UART或USB接口连接开发板。接线需注意引脚对应关系(如TXD/RXD交叉连接)[^2][^3]。 #### 二、语音识别服务配置 1. **API申请** - 注册百度语音识别/腾讯AI开放平台账号,获取`API Key`和`Secret Key`[^1] - 图灵机器人API用于语义理解(可选)[^1] 2. **依赖库安装** 若使用C语言开发,需安装`alsa-lib`频库和`libcurl`网络库: ```bash sudo apt-get install libasound2-dev libcurl4-openssl-dev ``` #### 三、代码实现(以C语言为例) 1. **录与播放** 使用ALSA库实现频采集,需设置采样率(如16kHz)和声道数: ```c // 示例:ALSA初始化 snd_pcm_open(&handle, "default", SND_PCM_STREAM_CAPTURE, 0); snd_pcm_set_params(handle, SND_PCM_FORMAT_S16_LE, SND_PCM_ACCESS_RW_INTERLEAVED, 1, 16000, 1, 50000); ``` 2. **语音识别调用** 通过HTTP POST将频数据发送至云端API: ```c // 示例:调用百度语音识别 curl_easy_setopt(curl, CURLOPT_URL, "http://vop.baidu.com/server_api"); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, post_data); ``` 3. **控制逻辑开发** 解析返回的JSON结果并触发对应操作(如GPIO控制): ```c // 示例:GPIO控制LED system("echo 1 > /sys/class/gpio/gpio17/value"); ``` #### 四、部署与优化 1. **量自适应** 添加环境噪声检测模块,动态调整录阈值: ```c // 示例:计算频能量值 double energy = calculate_energy(buffer, frames); if (energy > THRESHOLD) start_recording(); ``` 2. **离线方案(可选)** 使用PocketSphinx等开源工具实现本地识别(需牺牲部分准确率): ```bash sudo apt-get install pocketsphinx pocketsphinx-en-us ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值