发布日期: 2024/04/23 06:18

我DIY了一个可以声控刷抖音的神器,这下连手指都解放了


用一块板两个模块三根线就可以爆改手机,实现语音控制刷抖音,上下滑动视频、点赞那都是基础操作,关键是还可以一键睡觉,懒人福音!


所谓一块板两个模块三根线,一块开发板就是负责接收和控制的香橙派H616开发板,两个模块分别是负责发送的语音识别模块SU-03T和一个mic,所以除了电源外,只需要将语音识别模块的TX(B7)接到香橙派的RX就可以,算上电源共三根线:



项目需求只是简单的通过语音指令来控制安卓手机刷抖音,以实现视频切换和点赞等功能:

  • 1:开机播报“你好,我是你的刷抖音助手”
  • 2:当说出“你好抖音助手"可以唤醒模块,模块回复“抖音助手在”
  • 3:当超过10s没有指令或说出“退下”时,模块会进入休眠模式,并回复“有需要再叫我”
  • 4:当说出“下一个视频”或“这个不好看”时,模块回复“切换至下一个视频”,并划到下一个视频
  • 5:当说出“上一个视频”或“刚刚那个挺好看”时,模块回复“切换至上一个视频”,并划回上一个视频
  • 6:当说出“点个赞”或“这个视频不错”时,模块回复“已为您点赞”,并点赞当前视频
  • 7:当说出“不想看了”时,模块回复“已为您关闭屏幕”,并关闭手机屏幕,一键入睡!

语音识别模块配置

项目中所需要的是一个非特定语音识别,也就是不识别特定人类的声音的模块。所以SU-03T这个模块的操作相较于其他语音识别模块更简单,不需要编程或二次开发,只需要通过厂家给的网站配置后即可使用。


对于语音识别模块,串口的RX和TX分别对应B6和B7,并设置相应的波特率:


参数的设置就是行为的名字,大写字母 ,16进制ASCII码,已空格分开

  • next -> 4E 45 58 54 -pre -> 50 52 45 -an -> 5A 41 4E -guan -> 47 55 41 4E

在完成以上步骤,并下载SDK并烧写进入语音识别模块后,可以打开串口助手来测试一下,分别说出对应的指令,看看语音识别模块是否会向串口发送对应的字符。

分别说出了四条指令,可见串口输出正确!


编写香橙派代码框架

语音识别模块设置完成后,就可以将语音识别模块接到香橙派并进行Linux部分的代码编写,连接方式如下图所示:


新创建一个“douyin”文件夹,将语音刷抖音项目的代码放在这里面:


然后将一些代码拷贝进来方便修改:


重新编译一下,并说出4条控制语句:


可见,语音识别模块成功识别了指令,香橙派成功的接收了语音识别模块通过串口打印的字符!

现在,就需要修改serial_douyin.c中接收的代码,添加数据处理的部分,先简单写一个数据处理的框架

void *write_serial(void *arg)
{
    char readbuf[32] = {'\0'};
    while(1){
        while(serialDataAvail (*((int *)arg))){
            serialGetstring (*((int *)arg),readbuf) ;
 
            if(strcmp(readbuf,"NEXT") == 0 ){
                printf("收到下一条视频指令\n");
            }else if(strcmp(readbuf,"PRE") == 0){
                printf("收到上一条视频指令\n");
            }else if(strcmp(readbuf,"ZAN") == 0){
                printf("收到点赞指令\n");
            }else if(strcmp(readbuf,"GUAN") == 0){
                printf("收到关闭指令\n");
            }else{
                printf("未知指令\n");
            }
 
            memset(readbuf,'\0',32);
        }
    }
 
    pthread_exit(NULL);
}

重新编译一下,并说出4条控制语句:


可见,函数框架正确,接下来只需要将printf替换成真正的操作手机的代码就可以了。

将手机接入香橙派

将我破旧的小米5C再次拿出哈哈哈,然后通过 TYPE-C -- USB 连接到香橙派:


香橙派输入dmesg指令查看手机接入情况,可见已经成功识别 f4d2e9b5a4d74933a85d31406cf2fc22.png


由于安卓手机的底层也是用Linux系统来操作的,所以可以通过香橙派来直接进入控制手机shell的界面,但需要先安装adb工具,adb是做安卓开发中常用的工具

sudo apt-get insall adb

报错的本质原因是香橙派系统还不支持USB设备的热拔插和UDEV的机制。