语音识别控制QQ

QQ.cpp 单独测试控制qq的各种命令

#include<Windows.h>void openqq()
{ShellExecuteA(0, "open", "\"C:\\Program Files (x86)\\Tencent\\QQ\\QQProtect\\Bin\\QQProtect.exe\"", 0, 0, 1);
}void closeqq()
{system("taskkill /f /im QQ.exe");
}void show()
{HWND win = FindWindowA("TXGuiFoundation","QQ2013");if (win != NULL){ShowWindow(win, SW_SHOW);}
}void  hide()
{HWND win = FindWindowA("TXGuiFoundation", "QQ2013");if (win != NULL){ShowWindow(win, SW_HIDE);}
}void  shang()
{HWND win = FindWindowA("TXGuiFoundation", "QQ2013");if (win != NULL){RECT rectwind;//区域,lefr ,right ,top,bottomGetWindowRect(win, &rectwind);//获取区域SetWindowPos(win, NULL, rectwind.left, rectwind.top-100, 300, 300, 1);}
}void xia()
{HWND win = FindWindowA("TXGuiFoundation", "QQ2013");if (win != NULL){RECT rectwind;//区域,lefr ,right ,top,bottomGetWindowRect(win, &rectwind);//获取区域SetWindowPos(win, NULL, rectwind.left, rectwind.top + 100, 300, 300, 1);}
}void zuo()
{HWND win = FindWindowA("TXGuiFoundation", "QQ2013");if (win != NULL){RECT rectwind;//区域,lefr ,right ,top,bottomGetWindowRect(win, &rectwind);//获取区域SetWindowPos(win, NULL, rectwind.left-100, rectwind.top , 300, 300, 1);}
}void you()
{HWND win = FindWindowA("TXGuiFoundation", "QQ2013");if (win != NULL){RECT rectwind;//区域,lefr ,right ,top,bottomGetWindowRect(win, &rectwind);//获取区域SetWindowPos(win, NULL, rectwind.left + 100, rectwind.top, 300, 300, 1);//设置区域位置}
}void main()
{openqq();Sleep(3000);/*show();Sleep(2000);hide();*/shang();Sleep(2000);shang();Sleep(2000);//closeqq();
}

speechrecognition.cpp 结合到语音控制qq移动

#include <windows.h>
#include <atlstr.h>
#include <sphelper.h>
#include <sapi.h>
#include<comutil.h>
#include<string.h>#pragma comment(lib,"sapi.lib")
#pragma comment(lib, "comsupp.lib") #define GID_CMD_GR 333333
#define WM_RECOEVENT WM_USER+1LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);void openqq();void you();void zuo();void shang();void xia();void closeqq();void show();void hide();char     szAppName[] = "TsinghuaYincheng";BOOL b_initSR;BOOL b_Cmd_Grammar;CComPtr<ISpRecoContext>m_cpRecoCtxt;  //语音识别程序接口CComPtr<ISpRecoGrammar>m_cpCmdGramma; //识别语法CComPtr<ISpRecognizer>m_cpRecoEngine; //语音识别引擎int speak(wchar_t *str);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow){HWND        hwnd;MSG         msg;WNDCLASS    wndclass;wndclass.cbClsExtra          =0;wndclass.cbWndExtra          =0;wndclass.hbrBackground       =(HBRUSH)GetStockObject(WHITE_BRUSH);wndclass.hCursor             =LoadCursor(NULL,IDC_ARROW);wndclass.hIcon               =LoadIcon(NULL,IDI_APPLICATION);wndclass.hInstance           =hInstance;wndclass.lpfnWndProc         =WndProc;wndclass.lpszClassName       =szAppName;wndclass.lpszMenuName        =NULL;wndclass.style               =CS_HREDRAW|CS_VREDRAW;if(!RegisterClass(&wndclass)){MessageBox(NULL,TEXT("This program requires Windows NT!"),szAppName,MB_ICONERROR);return 0;}speak(L"谭胜是一个猥琐男");hwnd=CreateWindow(szAppName,TEXT("传智播客C/C++学院语音识别教程"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);ShowWindow(hwnd,iCmdShow);UpdateWindow(hwnd);while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam;}LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){HDC           hdc;PAINTSTRUCT   ps;switch(message){case WM_CREATE:{//初始化COM端口::CoInitializeEx(NULL,COINIT_APARTMENTTHREADED);//创建识别引擎COM实例为共享型HRESULT hr=m_cpRecoEngine.CoCreateInstance(CLSID_SpSharedRecognizer);//创建识别上下文接口if(SUCCEEDED(hr)){hr=m_cpRecoEngine->CreateRecoContext(&m_cpRecoCtxt);}else MessageBox(hwnd,TEXT("error1"),TEXT("error"),S_OK);//设置识别消息,使计算机时刻监听语音消息if(SUCCEEDED(hr)){hr=m_cpRecoCtxt->SetNotifyWindowMessage(hwnd,WM_RECOEVENT,0,0);}else MessageBox(hwnd,TEXT("error2"),TEXT("error"),S_OK);//设置我们感兴趣的事件if(SUCCEEDED(hr)){ULONGLONG ullMyEvents=SPFEI(SPEI_SOUND_START)|SPFEI(SPEI_RECOGNITION)|SPFEI(SPEI_SOUND_END);hr=m_cpRecoCtxt->SetInterest(ullMyEvents,ullMyEvents);}else MessageBox(hwnd,TEXT("error3"),TEXT("error"),S_OK);//创建语法规则b_Cmd_Grammar=TRUE;if(FAILED(hr)){MessageBox(hwnd,TEXT("error4"),TEXT("error"),S_OK);}hr=m_cpRecoCtxt->CreateGrammar(GID_CMD_GR,&m_cpCmdGramma);WCHAR wszXMLFile[20]=L"er.xml";MultiByteToWideChar(CP_ACP,0,(LPCSTR)"er.xml",-1,wszXMLFile,256);hr=m_cpCmdGramma->LoadCmdFromFile(wszXMLFile,SPLO_DYNAMIC);if(FAILED(hr)){MessageBox(hwnd,TEXT("error5"),TEXT("error"),S_OK);}b_initSR=TRUE;//在开始识别时,激活语法进行识别hr=m_cpCmdGramma->SetRuleState(NULL,NULL,SPRS_ACTIVE);return 0;}case WM_RECOEVENT:{RECT rect;GetClientRect(hwnd,&rect);hdc=GetDC(hwnd);USES_CONVERSION;CSpEvent event;while(event.GetFrom(m_cpRecoCtxt)==S_OK){switch(event.eEventId){case SPEI_RECOGNITION:{static const WCHAR wszUnrecognized[]=L"<Unrecognized>";CSpDynamicString dstrText;//取得识别结果if(FAILED(event.RecoResult()->GetText(SP_GETWHOLEPHRASE,SP_GETWHOLEPHRASE,TRUE,&dstrText,NULL))){dstrText=wszUnrecognized;}BSTR SRout;dstrText.CopyToBSTR(&SRout);char* lpszText2 = _com_util::ConvertBSTRToString(SRout);if(b_Cmd_Grammar){//绘制文本DrawText(hdc, TEXT(lpszText2), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);                                                   if (strcmp("我是学霸",lpszText2)==0){    MessageBoxA(0, lpszText2, lpszText2, 0);}if (strcmp("清华土匪", lpszText2) == 0){MessageBoxA(0, lpszText2, lpszText2, 0);}if (strcmp("传智播客", lpszText2) == 0){MessageBoxA(0, lpszText2, lpszText2, 0);}if (strcmp("天下无双", lpszText2) == 0){wchar_t * str = L"谭胜大爷吹牛皮的功夫天下无双";speak(str);}if (strcmp("给我上", lpszText2) == 0){speak(L"亲爱的主人,好");shang();}if (strcmp("给我下", lpszText2) == 0){speak(L"亲爱的主人,好");xia();}if (strcmp("给我左", lpszText2) == 0){speak(L"亲爱的主人,好");zuo();}if (strcmp("给我右", lpszText2) == 0){speak(L"亲爱的主人,好");you();}if (strcmp("打开企鹅", lpszText2) == 0){speak(L"亲爱的主人,好");openqq();}if (strcmp("关闭企鹅", lpszText2) == 0){speak(L"亲爱的主人,好");closeqq();}if (strcmp("显示", lpszText2) == 0){speak(L"亲爱的主人,好");show();}if (strcmp("隐藏", lpszText2) == 0){speak(L"亲爱的主人,好");hide();}if (strcmp("谭胜是谁", lpszText2) == 0){speak(L"谭胜是横空出世的英雄,百年不遇的天才");}if (strcmp("你是谁", lpszText2) == 0){speak(L"我是你们勇猛勤奋彪悍的谭胜大哥写的语音识别程序");}if (strcmp("你是笨蛋", lpszText2) == 0){speak(L"我的创造者谭胜大哥聪明的惊天地泣鬼神");}if (strcmp("你是蠢猪", lpszText2) == 0){speak(L"我固然很蠢,但是我的创造者谭胜大哥聪明的惊天地泣鬼神");}if (strcmp("你很好", lpszText2) == 0){speak(L"我一直很牛逼,多亏谭大爷");}if (strcmp("中秋快乐", lpszText2) == 0){speak(L"谭大爷叫你回家吃月饼");}}    }}}return TRUE;}case WM_PAINT:hdc=BeginPaint(hwnd,&ps);EndPaint(hwnd,&ps);return 0;case WM_DESTROY:PostQuitMessage(0);return 0;}return DefWindowProc(hwnd,message,wParam,lParam);}#pragma comment(lib, "ole32.lib") //CoInitialize CoCreateInstance需要调用ole32.dll
int speak(wchar_t *str)
{ISpVoice * pVoice = NULL;::CoInitialize(NULL);//获取ISpVoice接口:   long hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);hr = pVoice->Speak(str, 0, NULL);pVoice->Release();pVoice = NULL;//千万不要忘记:   ::CoUninitialize();return TRUE;}void openqq()
{ShellExecuteA(0, "open", "\"C:\\Program Files (x86)\\Tencent\\QQ\\QQProtect\\Bin\\QQProtect.exe\"", 0, 0, 1);
}void closeqq()
{system("taskkill /f /im QQ.exe");
}void show()
{HWND win = FindWindowA("TXGuiFoundation", "QQ2013");if (win != NULL){ShowWindow(win, SW_SHOW);}
}void  hide()
{HWND win = FindWindowA("TXGuiFoundation", "QQ2013");if (win != NULL){ShowWindow(win, SW_HIDE);}
}void  shang()
{HWND win = FindWindowA("TXGuiFoundation", "QQ2013");if (win != NULL){RECT rectwind;//区域,lefr ,right ,top,bottomGetWindowRect(win, &rectwind);//获取区域SetWindowPos(win, NULL, rectwind.left, rectwind.top - 100, 300, 300, 1);}
}void xia()
{HWND win = FindWindowA("TXGuiFoundation", "QQ2013");if (win != NULL){RECT rectwind;//区域,lefr ,right ,top,bottomGetWindowRect(win, &rectwind);//获取区域SetWindowPos(win, NULL, rectwind.left, rectwind.top + 100, 300, 300, 1);}
}void zuo()
{HWND win = FindWindowA("TXGuiFoundation", "QQ2013");if (win != NULL){RECT rectwind;//区域,lefr ,right ,top,bottomGetWindowRect(win, &rectwind);//获取区域SetWindowPos(win, NULL, rectwind.left - 100, rectwind.top, 300, 300, 1);}
}void you()
{HWND win = FindWindowA("TXGuiFoundation", "QQ2013");if (win != NULL){RECT rectwind;//区域,lefr ,right ,top,bottomGetWindowRect(win, &rectwind);//获取区域SetWindowPos(win, NULL, rectwind.left + 100, rectwind.top, 300, 300, 1);//设置区域位置}
}

er.xml

<?xml version="1.0" encoding="utf-8"?>
<GRAMMAR LANGID="804"><DEFINE><ID NAME="CMD" VAL="10"/></DEFINE><RULE NAME="COMMAND" ID="CMD" TOPLEVEL="ACTIVE"><L><P>我是学霸</P><P>清华土匪</P><P>传智播客</P><P>天下无双</P><P>给我上</P>我<P>给我下</P><P>给我左</P><P>给我右</P><P>打开企鹅</P><P>关闭企鹅</P><P>显示</P><P>隐藏</P><P>谭胜是谁</P><P>你是谁</P><P>你是笨蛋</P><P>你是蠢猪</P><P>你很好</P><P>中秋快乐</P></L></RULE></GRAMMAR>

语音控制游戏

#include <windows.h>
#include <atlstr.h>
#include <sphelper.h>
#include <sapi.h>
#include<comutil.h>
#include<string.h>#pragma comment(lib,"sapi.lib")
#pragma comment(lib, "comsupp.lib") #define GID_CMD_GR 333333
#define WM_RECOEVENT WM_USER+1LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);char    szAppName[] = "TsinghuaYincheng";BOOL b_initSR;BOOL b_Cmd_Grammar;CComPtr<ISpRecoContext>m_cpRecoCtxt;  //语音识别程序接口CComPtr<ISpRecoGrammar>m_cpCmdGramma; //识别语法CComPtr<ISpRecognizer>m_cpRecoEngine; //语音识别引擎int speak(wchar_t *str);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow){HWND        hwnd;MSG         msg;WNDCLASS    wndclass;wndclass.cbClsExtra          =0;wndclass.cbWndExtra          =0;wndclass.hbrBackground       =(HBRUSH)GetStockObject(WHITE_BRUSH);wndclass.hCursor             =LoadCursor(NULL,IDC_ARROW);wndclass.hIcon               =LoadIcon(NULL,IDI_APPLICATION);wndclass.hInstance           =hInstance;wndclass.lpfnWndProc         =WndProc;wndclass.lpszClassName       =szAppName;wndclass.lpszMenuName        =NULL;wndclass.style               =CS_HREDRAW|CS_VREDRAW;if(!RegisterClass(&wndclass)){MessageBox(NULL,TEXT("This program requires Windows NT!"),szAppName,MB_ICONERROR);return 0;}speak(L"谭胜是一个猥琐男");hwnd=CreateWindow(szAppName,TEXT("传智播客C/C++学院语音识别教程"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);ShowWindow(hwnd,iCmdShow);UpdateWindow(hwnd);while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam;}LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){HDC           hdc;PAINTSTRUCT   ps;switch(message){case WM_CREATE:{//初始化COM端口::CoInitializeEx(NULL,COINIT_APARTMENTTHREADED);//创建识别引擎COM实例为共享型HRESULT hr=m_cpRecoEngine.CoCreateInstance(CLSID_SpSharedRecognizer);//创建识别上下文接口if(SUCCEEDED(hr)){hr=m_cpRecoEngine->CreateRecoContext(&m_cpRecoCtxt);}else MessageBox(hwnd,TEXT("error1"),TEXT("error"),S_OK);//设置识别消息,使计算机时刻监听语音消息if(SUCCEEDED(hr)){hr=m_cpRecoCtxt->SetNotifyWindowMessage(hwnd,WM_RECOEVENT,0,0);}else MessageBox(hwnd,TEXT("error2"),TEXT("error"),S_OK);//设置我们感兴趣的事件if(SUCCEEDED(hr)){ULONGLONG ullMyEvents=SPFEI(SPEI_SOUND_START)|SPFEI(SPEI_RECOGNITION)|SPFEI(SPEI_SOUND_END);hr=m_cpRecoCtxt->SetInterest(ullMyEvents,ullMyEvents);}else MessageBox(hwnd,TEXT("error3"),TEXT("error"),S_OK);//创建语法规则b_Cmd_Grammar=TRUE;if(FAILED(hr)){MessageBox(hwnd,TEXT("error4"),TEXT("error"),S_OK);}hr=m_cpRecoCtxt->CreateGrammar(GID_CMD_GR,&m_cpCmdGramma);WCHAR wszXMLFile[20]=L"er.xml";MultiByteToWideChar(CP_ACP,0,(LPCSTR)"er.xml",-1,wszXMLFile,256);hr=m_cpCmdGramma->LoadCmdFromFile(wszXMLFile,SPLO_DYNAMIC);if(FAILED(hr)){MessageBox(hwnd,TEXT("error5"),TEXT("error"),S_OK);}b_initSR=TRUE;//在开始识别时,激活语法进行识别hr=m_cpCmdGramma->SetRuleState(NULL,NULL,SPRS_ACTIVE);return 0;}case WM_RECOEVENT:{RECT rect;GetClientRect(hwnd,&rect);hdc=GetDC(hwnd);USES_CONVERSION;CSpEvent event;while(event.GetFrom(m_cpRecoCtxt)==S_OK){switch(event.eEventId){case SPEI_RECOGNITION:{static const WCHAR wszUnrecognized[]=L"<Unrecognized>";CSpDynamicString dstrText;//取得识别结果if(FAILED(event.RecoResult()->GetText(SP_GETWHOLEPHRASE,SP_GETWHOLEPHRASE,TRUE,&dstrText,NULL))){dstrText=wszUnrecognized;}BSTR SRout;dstrText.CopyToBSTR(&SRout);char* lpszText2 = _com_util::ConvertBSTRToString(SRout);if(b_Cmd_Grammar){DrawText(hdc, TEXT(lpszText2), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);if (strcmp("旋风刀",lpszText2)==0){    keybd_event('A', 0, 0, 0);//按下keybd_event('A', 0, KEYEVENTF_KEYUP, 0);//弹起Sleep(10);keybd_event('D', 0, 0, 0);//按下keybd_event('D', 0, KEYEVENTF_KEYUP, 0);//弹起Sleep(10);keybd_event('W', 0, 0, 0);//按下keybd_event('W', 0, KEYEVENTF_KEYUP, 0);//弹起Sleep(10);mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);}if (strcmp("大风吹", lpszText2) == 0){//sww lkeybd_event('A', 0, 0, 0);//按下keybd_event('A', 0, KEYEVENTF_KEYUP, 0);//弹起Sleep(10);keybd_event('D', 0, 0, 0);//按下keybd_event('D', 0, KEYEVENTF_KEYUP, 0);//弹起Sleep(10);keybd_event('S', 0, 0, 0);//按下keybd_event('S', 0, KEYEVENTF_KEYUP, 0);//弹起Sleep(10);mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);}if (strcmp("充气", lpszText2) == 0){//   \angkeybd_event(VK_OEM_102, 0, 0, 0);//按下keybd_event(VK_OEM_102, 0, KEYEVENTF_KEYUP, 0);//弹起Sleep(10);keybd_event('A', 0, 0, 0);//按下keybd_event('A', 0, KEYEVENTF_KEYUP, 0);//弹起Sleep(10);keybd_event('N', 0, 0, 0);//按下keybd_event('N', 0, KEYEVENTF_KEYUP, 0);//弹起Sleep(10);keybd_event('G', 0, 0, 0);//按下6igrk;)移植keybd_event('G', 0, KEYEVENTF_KEYUP, 0);//弹起Sleep(10);keybd_event(VK_RETURN, 0, 0, 0);//按下6igrk;)移植keybd_event(VK_RETURN,  0, KEYEVENTF_KEYUP, 0);//弹起}if (strcmp("跳跃", lpszText2) == 0){keybd_event(VK_SPACE, 0, 0, 0);//按下keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0);//弹起}if (strcmp("趴下", lpszText2) == 0){}if (strcmp("前进", lpszText2) == 0){}if (strcmp("后退", lpszText2) == 0){}}    }}}return TRUE;}case WM_PAINT:hdc=BeginPaint(hwnd,&ps);EndPaint(hwnd,&ps);return 0;case WM_DESTROY:PostQuitMessage(0);return 0;}return DefWindowProc(hwnd,message,wParam,lParam);}#pragma comment(lib, "ole32.lib") //CoInitialize CoCreateInstance需要调用ole32.dll
int speak(wchar_t *str)
{ISpVoice * pVoice = NULL;::CoInitialize(NULL);//获取ISpVoice接口:   long hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);hr = pVoice->Speak(str, 0, NULL);pVoice->Release();pVoice = NULL;//千万不要忘记:   ::CoUninitialize();return TRUE;}

er.xml与cpp文件放在同一目录下

<?xml version="1.0" encoding="utf-8"?>
<GRAMMAR LANGID="804"><DEFINE><ID NAME="CMD" VAL="10"/></DEFINE><RULE NAME="COMMAND" ID="CMD" TOPLEVEL="ACTIVE"><L><P>旋风刀</P><P>大风吹</P><P>充气</P><P>跳跃</P><P>趴下</P><P>前进</P><P>后退</P></L></RULE></GRAMMAR>

【C/C++学院】0805-语音识别控制QQ/语音控制游戏相关推荐

  1. IOS 集成讯飞语音唤醒+语音识别,实现语音控制效果

    前言 最近项目上需要实现语音调度,一开始是想用苹果原生speech Framework框架的,但是网上找了很久都没有原生实现语音唤醒功能的栗子,到时有不少百度,讯飞的语音唤醒,语音识别的栗子,不过都是 ...

  2. 毕业/课程设计——基于STM32的智能灯光控制系统(物联网、智能家居、手机APP控制、语音控制)

    文章首先介绍本系统所包含的功能,主要包含六方面功能,之后逐步分享开发过程,其流程如下:点亮灯带(三极管)→调节灯光亮度(PWM)→为系统添加远程控制功能→为系统添加语音识别功能→添加超声波姿态监测功能 ...

  3. python控制qq语音通话_懒人专用的奇淫技巧,用Python实现炫酷的语音操作电脑!...

    最近小编忙里偷闲的看了一部电影叫做<头号玩家>,虽然当时去电影院观看了,但是现在回看之后依然是感觉很过瘾,里面的虚拟现实让人看着非常的真实.小编也想过一把这种科幻的瘾. 虽然电影里的效果我 ...

  4. 基于SPCE061A的语音控制小车设计

    目 录 第一章 前言--------------------------1 第二章 语音控制小车设计要求-----------------2 2.1 功能设计要求------------------- ...

  5. 基于Google的嵌入式系统android开发语音技术(语音搜索,语音朗读文章,语音控制)

    android是Google推出的嵌入式操作系统,有着广泛的根基与基础.最近一个中关村的一个CEO朋友送了一个摩托罗拉android手机,想玩玩语音技术过把瘾.如何用android开发语音技术应用呢, ...

  6. 智能语音控制中心 - 树莓派、Nanopi、Orangepi语音识别控制

    为什么80%的码农都做不了架构师?>>>    简介:由C语言编写的基于百度语音识别.语音合成和图灵机器人的智能语言控制中心(语音聊天机器人).程序自动适配环境音量,取适当阀值当说话 ...

  7. stm32的语音识别_基于stm32循迹避障语音控制金属探测蓝牙小车设计(原理图+pcb+源码+参考文档)...

    功能描述及设计原理: 小车具有检测里程功能,在金属探测模式,槽型光耦会检测小车车轮的圈数,以此来计算小车行走的里程,并可以通过OLED屏幕显示出来.还可以显示小车的工作模式以及小车距离前方障碍物的距离 ...

  8. 离线语音控制并不等于本地语音识别

    (文章来源:木瓜电子) 木瓜电子可以为国内各大家电产商提供离线语音控制的模块和芯片产品,但是没有本地语音识别的方案.这两者区别的地方是什么呢?针对家电产品控制进行解释一些这两者之前的区别. 离线语音控 ...

  9. 语音控制小车运动APP(基于百度语音识别)

    语音控制小车运动APP(基于百度语音识别) 项目背景 由于暑期优秀本科生项目需求,开发了一款控制机器人行走的APP,具体要求如下: 在第一个界面(连接界面)实现Socket连接,连接成功则跳转到下一个 ...

  10. 基于python和深度学习(语音识别、NLP)实现本地离线智能语音控制终端(带聊天功能和家居控制功能)

    首先,我们来捋一下一个好的智能控制终端需要什么功能: 1.得随叫随到,不需要的时候就休眠,省电又省心 2.得会听,听得懂人的需求 3.得会控制智能家居,实现人的需求 4.还得会说,更好的与人进行交流和 ...

最新文章

  1. chrome调试工具常用功能整理
  2. python 有趣的变量_Python进阶之路 3.2有趣的赋值操作
  3. 从C++Primer某习题出发,谈谈C语言标准I/O的缓存问题
  4. 产品分析:岛APP,青年文化拍了拍社交赛道
  5. PMcaff每日推荐5本--产品经理必读的互联网专业书籍
  6. 第18课:模型部署上线的几种服务发布方式
  7. kafka常用的shell命令
  8. 在deepin 15.5中安装vs code并配置c/c++环境
  9. 调试某游戏副本中的加亮提示信息思路
  10. 成都Uber优步司机奖励政策(3月28日)
  11. ACM 美素数 (没AC)
  12. 【重点!DP】LeetCode 639. Decode Ways II
  13. 利用并查集+贪心解决 Hdu1232
  14. 排序算法:二分排序(插入排序+二分查找)
  15. 4×4键盘板:ATMEGA328接口
  16. 第三方平台通过钉钉扫码登录实现方案
  17. python模拟手机按键_Appium+Python-模拟手机按键操作
  18. LTspice基础教程-015.导入第三方库
  19. 喧喧聊天的协同开源办公工具环境搭建
  20. 一台电脑怎么登录多个微信?~~方法超简单

热门文章

  1. .Net Core WebApi集成JWT实现身份认证
  2. 小白自定义bat文件一键启动电脑应用
  3. Yii Framework2.0开发教程(3)数据库mysql入门
  4. 编程基本功:如何拆分一个大函数
  5. Android Studio 编译输出中文乱码的解决办法
  6. new RandomAccessFile有时很耗时间
  7. git太慢时的加速办法,测试有效
  8. 人都喜欢抬杠:一时不抬杠就浑身难受综合症候群
  9. 编译问题解决:mkdir: 无法创建目录/usr/local/share/man/man1: 文件已存在
  10. jquery 获取整个表单_15个表单验证jQuery插件和库