智能语音输入--回复:慢慢完善

之前:1.智能语音识别的范畴比较广,把这个项目做好很花时间;

           2.我只是给出了方案,具体的代码实现必须保证:能够移植到原有的游戏代码中去,以及原游戏代码兼容;

      

1.需求分析:在已经可以键盘鼠标控制的情况下,通过智能语音控制代替人为外设输入,使PC机对语音做出反应.

2.概念设计:划分模块.

3.实验相关:智能识别语音----及时保存语音----确切保存文字---编译运行代码--机器做出反应.

对此,我们有以下三个方案:

·····方案一:购买相关成熟产品;(成本高,不太建议考虑)

需求很简单,将原本PC机器输入的数据改变成语音输入,只需要在市面上购买语音鼠标,语音USB或者智能话筒即可实现;常见的智能语音识别有讯飞智能语音鼠标;

优点:操作简单,实现容易,完全取代了键盘的输入操作,能够较快地解决当前的问题;

缺点:需要消耗经费,冲突与低成本游戏;

·····方案二:通过代码实现:@1.c++智能语音识别代码,并且保存在txt文件中;@2.对txt文件的读取;
          1.语音实时转化为文字保存在txt文件中,保留一个,计算机读取一个并且实时反馈到游戏中;
          2.计算机接收到命令,并且及时(<1s)地做出反应;
          3.如果输入命令错误,可以手动或者语音撤回;

下列是智能语音识别c++代码下载资源:(实现起来麻烦,需要大量时间);

https://download.csdn.net/download/thecentry/10859369

#include<sphelper>//语音头文件
#include<iostream>//C++头文件,用来提示错误信息
int main(){
    ::CoInitialize(NULL);//初始化语音环境
    ISpVoice * pSpVoice = NULL;//初始化语音变量
    if(FAILED(CoCreateInstance(CLSID_SpVoice, NULL,CLSCTX_INPROC_SERVER, IID_ISpVoice, (void **)&pSpVoice))){   
    //给语音变量创建环境,相当于创建语音变量,FAILED是个宏定义,就是来判断CoCreateInstance这个函数又没有成功创建语音变量,下面是不成功的提示信息。
        cout<<"Failed to create instance of ISpVoice!"<<endl; 
        return -1; 
    }
    pSpVoice->Speak(L"Hello World!", SPF_DEFAULT, NULL);//执行语音变量的Speek函数,这个函数用来读文字。
    pSpVoice->Release();//释放语音变量
    ::CoUninitialize();//释放语音环境
    return 0;
}

智能语音识别的实现过程:https://blog.csdn.net/pamchen/article/details/7856207

下列C/C++代码直接调用已经保存的txt文件,并且及时作出反应;

其中已经保存的txt文件内容:小一 小二 小三 小四 小五,即为智能语音的输入所转换为文字的内容; 

#include<cstdio>
#include<cstdlib>
#include<cstring> 
const int MAX=1000+10;
void solve(/*对于当前的操作做出命令solve()*/){
	;//可以执行的操作 
}
int main(){
	FILE *fp;
	char buffer[MAX];
	fp=fopen("牌类(80张).txt","r");//打开文件,该文件即为语音输入的及时文件
	fread(buffer,sizeof(char),MAX,fp);
	fclose(fp);
	printf("%s\n",buffer);//全部打印内容到屏幕 
	printf("%c%c%c%c\n",buffer[0],buffer[1],buffer[2],buffer[3]);//需要两个字符连接在一起才能实现对汉字的输出
	solve(/*传入当前参数*/);
	return 0;//当前输入结束 
}
输出内容:
小一 小二 小三 小四 小五
小一

--------------------------------
Process exited after 2.633 seconds with return value 0
请按任意键继续. . .

在solve()函数中可对当前的输入作出反应,可以自行补充(传到游戏代码中去);

优点:锻炼自身创新创造能力;

缺点:智能语音识别相关代码设计不易,如何快速将文字处理给计算机,并且计算机可以接收到命令;

-----方案三:综合一二两种方案;(更容易实现,成本低)

采用讯飞的输入法,和搜狗,微软自带的输入法类似,他们都适合于语音识别,并且将语音存入txt文件中;

我们有以下步骤:

 ~1.由于大多数电脑自带搜狗,直接点击搜狗语音图标即可;

~2.后台及时通过代码,及时读取到txt文档中的文字,立即保存,立即删除(有两个文字就保存与删除);

 ~3.文字处理程序及时反馈到游戏中;(由于键盘本身很容易实现,当然solve()函数也是十分容易实现的);

~4.对于游戏做出的错误指令,可以手动backqpace撤回。

以上方案中对于方案二实现不容易,其余两个方案都可以实现。

发布了150 篇原创文章 · 获赞 73 · 访问量 6561

猜你喜欢

转载自blog.csdn.net/queque_heiya/article/details/104182250