语言控制刷抖音小项目

该文介绍了如何配置和使用语音模块,包括在线配置、下载SDK和烧录固件。同时,文章讲解了Linux环境下通过adb工具进行手机接入和热拔插设置,以及如何利用adb命令模拟手机屏幕操作,如滑动、点赞和锁屏。
摘要由CSDN通过智能技术生成

接线方面

在这里插入图片描述
B7 — RX

语音模块配置

进入语音模块官网 ,官网地址, 配置词条和识别后的串口输出指令
在这里插入图片描述
随便选一个,然后下一步
在这里插入图片描述
选纯离线方案
在这里插入图片描述
选择SU-03T
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后点击发布版本即可
在这里插入图片描述

接下来下载SDK,烧录即可

在这里插入图片描述
在这里插入图片描述

代码如下:

将语音模块插入开发板并编程实现基础逻辑代码,添加串口读取一个字符的接口, myserialGetchar();

固件先和电脑调试助手配合,验证数据
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <pthread.h>
#include "uartTool.h"

int fd;
void* readSerial()
{
	char cmd;
	while(1){
		cmd = myserialGetchar(fd);
		switch(cmd){
			case 'N':
				printf("next\n");
				break;
			case 'P':
				printf("pre\n");
				break;
			case 'Z':
				printf("zan\n");
				break;
			case 'Q':
				printf("qu\n");
				break;
		}
	}
}
int main(int argc, char **argv)
{
	char deviceName[32] = {'\0'};
	pthread_t readt;
	if(argc < 2){
		printf("uage:%s /dev/ttyS?\n",argv[0]);
		return -1;
	}
	strcpy(deviceName, argv[1]);
	if( (fd = myserialOpen(deviceName, 115200)) == -1){
		printf("open %s error\n",deviceName);
		return -1;
	}
	pthread_create(&readt, NULL, readSerial,NULL);
	while(1){
		sleep(10);
	}
}

手机接入Linux热拔插相关

  1. 把手机接入开发板
  2. 安装adb工具,在终端输入adb安装指令: sudo apt-get install adb
  3. dmeg 能查看到手机接入的信息,但是输入adb devices会出现提醒
    dinsufficient permissions for device: user in plugdev group; are your udev rules wrong?
  4. 配置文件,以支持USB设备的热拔插,支持UDEV的机制
    /etc/udev/rules.d 文件夹下创建规则文件
    sudo vim 51-android.rules
    在文件中添加内容 SUBSYSTEM==“usb”, ENV{DEVTYPE}==“usb_device”, MODE=“0666”
  5. 在手机开发者选项中,打开USB调试,重新拔插手机 (多次点击软件版本号就可以打开开发者模式了,一定要安卓手机)
  6. 手机弹出调试提醒,点确认手机调试模式

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

adb shell input swipe 540 1300 540 500 100 向下滑动540是水平的,1300是竖直方向,下 是 500

adb shell input swipe 540 500 540 1300 100 向上滑动

adb shell "seq 3 | while read i;do input tap 350 1050 & input tap 350 1050 & sleep 0.01;done;" 点赞

adb shell input keyevent 26 锁屏

最后的代码如下

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdarg.h>
#include <string.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <pthread.h>
#include "uartTool.h"

int fd;
void* readSerial()
{
	char cmd;
	while(1){
		cmd = myserialGetchar(fd);
		switch(cmd){
			case 'N':
				printf("next\n");
				system("adb shell input swipe 540 1300 540 500 100");
				break;
			case 'P':
				printf("pre\n");
				system("adb shell input swipe 540 500 540 1300 100");
				break;
			case 'Z':
				printf("zan\n");
				system("adb shell \"seq 3 | while read i;do input tap 350 1050 &
				input tap 350 1050 & sleep 0.01;done;\"");
				break;
			case 'Q':
				printf("qu\n");
				system("adb shell input keyevent 26");
				break;
		}
	}
}
int main(int argc, char **argv)
{
	char deviceName[32] = {'\0'};
	pthread_t readt;
	if(argc < 2){
		printf("uage:%s /dev/ttyS?\n",argv[0]);
		return -1;
	}
	strcpy(deviceName, argv[1]);
	if( (fd = myserialOpen(deviceName, 115200)) == -1){
		printf("open %s error\n",deviceName);
		return -1;
	}
	pthread_create(&readt, NULL, readSerial,NULL);
	while(1){
		sleep(10);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要有一个具备语音识别功能的设备,例如树莓派,然后将其连接到你要控制的电脑或手机上。 接下来,你需要安装一个串口通信程序,例如minicom或putty,在Linux系统上使用串口连接到你的设备。 然后,你需要编写一个Python脚本,使用串口通信来与你的设备进行通信,并将语音识别结果发送给电脑或手机上的抖音客户端。 具体实现方法可以参考以下步骤: 1. 首先,你需要安装Python的串口通信模块,例如pyserial,可以使用以下命令进行安装: ``` pip install pyserial ``` 2. 接着,你需要编写一个Python脚本,使用串口通信来与你的设备进行通信,例如: ```python import serial ser = serial.Serial('/dev/ttyUSB0', 9600) # 将串口号和波特率替换为你的设备对应的值 while True: if ser.in_waiting > 0: data = ser.readline().decode('utf-8').strip() print(data) # 输出从设备接收到的数据 ``` 这段代码将会不断地从串口接收数据,并输出到控制台中。 3. 接下来,你需要集成语音识别功能,例如使用百度语音识别API,可以使用以下命令进行安装: ``` pip install baidu-aip ``` 4. 然后,你需要编写一个函数,使用百度语音识别API来将语音转换为文本,例如: ```python from aip import AipSpeech APP_ID = 'your_app_id' API_KEY = 'your_api_key' SECRET_KEY = 'your_secret_key' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) def speech_to_text(file_path): with open(file_path, 'rb') as f: speech_data = f.read() result = client.asr(speech_data, 'pcm', 16000, {'dev_pid': 1536}) if result['err_no'] == 0: text = result['result'][0] return text else: return None ``` 这个函数将会使用百度语音识别API将指定语音文件转换为文本。 5. 最后,你需要将语音识别结果发送给电脑或手机上的抖音客户端,例如: ```python import os import time def send_to_douyin(text): os.system('adb shell input tap 540 1700') # 替换为你的手机屏幕上打开抖音的位置 time.sleep(2) os.system('adb shell input tap 540 700') # 替换为你的手机屏幕上搜索按钮的位置 time.sleep(2) os.system('adb shell input text "{}"'.format(text)) # 输入搜索内容 time.sleep(2) os.system('adb shell input tap 540 1000') # 替换为你的手机屏幕上搜索结果的位置 time.sleep(2) os.system('adb shell input tap 540 1500') # 替换为你的手机屏幕上播放按钮的位置 ``` 这段代码将会使用ADB工具来模拟手机操作,实现在抖音客户端中搜索并播放指定的内容。 综上所述,你可以通过以上步骤基于Linux串口实现语音控制抖音的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值