树莓派开发——语音控制adb刷抖音

1.综述
利用语音模块,adb 控制刷抖音小项目,增长了相关方面认知(无什么实际作用)
2.语音模块
这里使用的语音模块为 YS-LDV7语音识别模块
在这里插入图片描述
通过阅读官方代码,修改所需识别的词条:
(1)增加所需识别的词条
在这里插入图片描述
(2)宏定义识别词条
在这里插入图片描述
(3)修改识别成功后通过串口发送的内容
在这里插入图片描述
3.语音模块与树莓派串口连接
树莓派串口编程可参考之前写的相关文章树莓派串口开发
这里进行简单修改:

#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <pthread.h>
#include "mySerial.h"
#include <unistd.h>
#include <stdlib.h>
int fd;


void *receiveHandler()
{
	char receBuf[8];
	char cmd;
	while(1){
		memset(receBuf,'\0',9);
		mySerialGetString(fd,receBuf);
		cmd  = receBuf[0];
		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 2 | while read i;do input tap 350 1050 &input tap 350 1050 & sleep 0.005;done\"");
				break;
			case'Q':
				printf("quit\n");
				system("adb shell input keyevent 26");
				break;

		}
	}
}

int main(int argc,char **argv)
{

	pthread_t SendFunID;
	pthread_t ReceiveFunID;
	char pathBuf[32] = {'\0'};

	if(argc < 2){
		printf("Please input the path of usart for example:/dev/ttyAMA0\n");
		return -1;
	}

	strcpy(pathBuf,argv[1]);

	fd = mySerialOpen(pathBuf,9600);

	pthread_create(&ReceiveFunID,NULL,receiveHandler,NULL);

	while(1);


	return 0 ;
}

4.树莓派adb连接安卓手机
(1)将手机用数据线与树莓派相连
(2)安装adb 工具:

sudo apt-get install adb

(3)可利用dmeg查看手机接入信息
在这里插入图片描述
(4)输入adb devices 会出现no permissions (verify udev rules) 因此需要进行以下操作:

sudo vi/etc/udev/rules.d/51-android.rules

并输入以下内容:

SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666", GROUP="plugdev"

(5)之后便可通过adb shell 连接手机对手机进行操作
在这里插入图片描述
5.用shell指令操作手机屏幕,模拟手动滑屏、点赞、息屏等操作:
(1)向下滑动屏幕 :

adb shell input swipe 540 1300 540 500 100 

(2)向上滑动屏幕:

adb shell input swipe 540 500 540 1300 100 

(4)双击点赞:

adb shell "seq 2 | while read i;do input tap 350 1050 &input tap 350 1050 & sleep 0.005;done"

(5)息屏:

adb shell input keyevent 26
首先,你需要有一个具备语识别功能的设备,例如树莓派,然后将其连接到你要控制的电脑或手机上。 接下来,你需要安装一个串口通信程序,例如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、付费专栏及课程。

余额充值