精华内容
下载资源
问答
  • 命令识别
    千次阅读
    2021-05-16 18:55:21

    Linux:-bash: ***: command not

    found,系统很多命令(ls、ll、vi、vim、cat等)都用不了,均提示没有此命令。

    突然之间linux很多命令都用不了,均提示没有此命令。

    这应该是系统环境变量出现了问题导致的。

    解决办法:

    先用:echo $PATH 查看path是否含有:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

    如果没有,先用临时环境变量(重启后消失)

    #export

    PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

    然后就可以用那些命令了,进去修改永久环境变量:

    1。修改profile文件:(所有用户)

    #vi /etc/profile

    加入:export

    PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

    保存退出。

    source /etc/profile 使profile文件生效

    2。修改.bashrc文件:(单独用户)

    #vi /~/.bashrc (每个用户目录下都有,ls -all)

    加入:export

    PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

    保存退出。

    (1)重启系统,搞定。

    (2)也可以不用重启,使用命令:#source .bashrc 即可使刚刚修改的环境变量生效。

    更多相关内容
  • 基于深度学习的语音命令识别(MATLAB版)
  • Linux运维-2系统管理-14服务管理-163源码包服务被服务管理命令识别.avi
  • 科大讯飞离线命令识别

    千次阅读 2022-02-17 15:40:18
    一、进入科大讯飞官网,下载自己所需要的SDK----以离线命令识别为例; 二、分析代码-----主要有以下四大函数 const char *get_audio_file(void); //选择进行离线语法识别的语音文件 int build_grammar(UserData *...

    一、进入科大讯飞官网,下载自己所需要的SDK----以离线命令词识别为例;

    二、分析代码-----主要有以下四大函数

    const char *get_audio_file(void); //选择进行离线语法识别的语音文件
    int build_grammar(UserData *udata); //构建离线识别语法网络
    int update_lexicon(UserData *udata); //更新离线识别语法词典
    int run_asr(UserData *udata); //进行离线语法识别
    

    2.1选择进行离线语法识别的语音文件

    const char* get_audio_file(void)
    {
    	char key = 0;
    	while(key != 27) //按Esc则退出
    	{
    		printf("请选择音频文件:\n");
    		printf("1.开始\n");
    		printf("2.测试\n");
    		key = _getch();
    		switch(key)
    		{
    		case '1':
    			printf("\n1.开始\n");
    			return "wav/start.pcm";
    		case '2':
    			printf("\n2.测试\n");
    			return "wav/test.pcm";
    		default:
    			continue;
    		}
    	}
    	exit(0);
    	return NULL;
    }
    

    2.2构建离线识别语法网络

    int build_grm_cb(int ecode, const char *info, void *udata)  //未理解该函数的作用,如有大神知道还请告知
    {
    	UserData *grm_data = (UserData *)udata;
    
    	if (NULL != grm_data) {
    		grm_data->build_fini = 1;
    		grm_data->errcode = ecode;
    	}
    
    	if (MSP_SUCCESS == ecode && NULL != info) {
    		printf("构建语法成功! 语法ID:%s\n", info);
    		if (NULL != grm_data)
    			_snprintf(grm_data->grammar_id, MAX_GRAMMARID_LEN - 1, info);
    	}
    	else
    		printf("构建语法失败!%d\n", ecode);
    
    	return 0;
    }
    
    int build_grammar(UserData *udata)
    {
    	FILE *grm_file                           = NULL;
    	char *grm_content                        = NULL;
    	unsigned int grm_cnt_len                 = 0;
    	char grm_build_params[MAX_PARAMS_LEN]    = {NULL};
    	int ret                                  = 0;
    
    	grm_file = fopen(GRM_FILE, "rb");	
    	if(NULL == grm_file) {
    		printf("打开\"%s\"文件失败![%s]\n", GRM_FILE, strerror(errno));
    		return -1; 
    	}
    
    	fseek(grm_file, 0, SEEK_END);
    	grm_cnt_len = ftell(grm_file);
    	fseek(grm_file, 0, SEEK_SET);
    
    	grm_content = (char *)malloc(grm_cnt_len + 1);
    	if (NULL == grm_content)
    	{
    		printf("内存分配失败!\n");
    		fclose(grm_file);
    		grm_file = NULL;
    		return -1;
    	}
    	fread((void*)grm_content, 1, grm_cnt_len, grm_file);
    	grm_content[grm_cnt_len] = '\0';
    	fclose(grm_file);
    	grm_file = NULL;
    
    	_snprintf(grm_build_params, MAX_PARAMS_LEN - 1, 
    		"engine_type = local, \
    		asr_res_path = %s, sample_rate = %d, \
    		grm_build_path = %s, ",
    		ASR_RES_PATH,
    		SAMPLE_RATE_16K,
    		GRM_BUILD_PATH
    		);
    	ret = QISRBuildGrammar("bnf", grm_content, grm_cnt_len, grm_build_params, build_grm_cb, udata);    //这里使用了回调函数
    
    	free(grm_content);
    	grm_content = NULL;
    
    	return ret;
    }
    

    2.3更新离线识别语法词典

    int update_lex_cb(int ecode, const char *info, void *udata)    //未理解该函数的作用,如有大神知道还请告知
    {
    	UserData *lex_data = (UserData *)udata;
    
    	if (NULL != lex_data) {
    		lex_data->update_fini = 1;
    		lex_data->errcode = ecode;
    	}
    
    	if (MSP_SUCCESS == ecode)
    		printf("更新词典成功!\n");
    	else
    		printf("更新词典失败!%d\n", ecode);
    
    	return 0;
    }
    
    int update_lexicon(UserData *udata)   //这里是更新语法,可根据自己的实际需要选择保留或者删除----仅作demo演示
    {
    	const char *lex_content                   = "更新前命令词\n更新后命令词";
    	unsigned int lex_cnt_len                  = strlen(lex_content);
    	char update_lex_params[MAX_PARAMS_LEN]    = {NULL}; 
    
    	_snprintf(update_lex_params, MAX_PARAMS_LEN - 1, 
    		"engine_type = local, text_encoding = GB2312, \
    		asr_res_path = %s, sample_rate = %d, \
    		grm_build_path = %s, grammar_list = %s, ",
    		ASR_RES_PATH,
    		SAMPLE_RATE_16K,
    		GRM_BUILD_PATH,
    		udata->grammar_id);
    	return QISRUpdateLexicon(LEX_NAME, lex_content, lex_cnt_len, update_lex_params, update_lex_cb, udata);
    }
    

    2.4进行离线语法识别

    int run_asr(UserData *udata)
    {
    	char asr_params[MAX_PARAMS_LEN]    = {NULL};
    	const char *rec_rslt               = NULL;
    	const char *session_id             = NULL;
    	const char *asr_audiof             = NULL;
    	FILE *f_pcm                        = NULL;
    	char *pcm_data                     = NULL;
    	long pcm_count                     = 0;
    	long pcm_size                      = 0;
    	int last_audio                     = 0;
    	int aud_stat                       = MSP_AUDIO_SAMPLE_CONTINUE;
    	int ep_status                      = MSP_EP_LOOKING_FOR_SPEECH;
    	int rec_status                     = MSP_REC_STATUS_INCOMPLETE;
    	int rss_status                     = MSP_REC_STATUS_INCOMPLETE;
    	int errcode                        = -1;
    
    	asr_audiof = get_audio_file();
    	f_pcm = fopen(asr_audiof, "rb");
    	if (NULL == f_pcm) {
    		printf("打开\"%s\"失败![%s]\n", f_pcm, strerror(errno));
    		goto run_error;
    	}
    	fseek(f_pcm, 0, SEEK_END);
    	pcm_size = ftell(f_pcm);
    	fseek(f_pcm, 0, SEEK_SET);
    	pcm_data = (char *)malloc(pcm_size);
    	if (NULL == pcm_data)
    		goto run_error;
    	fread((void *)pcm_data, pcm_size, 1, f_pcm);
    	fclose(f_pcm);
    	f_pcm = NULL;
    
    	//离线语法识别参数设置
    	_snprintf(asr_params, MAX_PARAMS_LEN - 1, 
    		"engine_type = local, \
    		asr_res_path = %s, sample_rate = %d, \
    		grm_build_path = %s, local_grammar = %s, \
    		result_type = xml, result_encoding = GB2312, ",
    		ASR_RES_PATH,
    		SAMPLE_RATE_16K,
    		GRM_BUILD_PATH,
    		udata->grammar_id
    		);
    	session_id = QISRSessionBegin(NULL, asr_params, &errcode);
    	if (NULL == session_id)
    		goto run_error;
    	printf("开始识别...\n");
    
    	while (1) {
    		unsigned int len = 6400;
    
    		if (pcm_size < 12800) {
    			len = pcm_size;
    			last_audio = 1;
    		}
    
    		aud_stat = MSP_AUDIO_SAMPLE_CONTINUE;
    
    		if (0 == pcm_count)
    			aud_stat = MSP_AUDIO_SAMPLE_FIRST;
    
    		if (len <= 0)
    			break;
    
    		printf(">");
    		errcode = QISRAudioWrite(session_id, (const void *)&pcm_data[pcm_count], len, aud_stat, &ep_status, &rec_status);
    		if (MSP_SUCCESS != errcode)
    			goto run_error;
    
    		pcm_count += (long)len;
    		pcm_size -= (long)len;
    
    		//检测到音频结束
    		if (MSP_EP_AFTER_SPEECH == ep_status)
    			break;
    
    		_sleep(150); //模拟人说话时间间隙
    	}
    	//主动点击音频结束
    	QISRAudioWrite(session_id, (const void *)NULL, 0, MSP_AUDIO_SAMPLE_LAST, &ep_status, &rec_status);
    
    	free(pcm_data);
    	pcm_data = NULL;
    
    	//获取识别结果
    	while (MSP_REC_STATUS_COMPLETE != rss_status && MSP_SUCCESS == errcode) {
    		rec_rslt = QISRGetResult(session_id, &rss_status, 0, &errcode);
    		_sleep(150);
    	}
    	printf("\n识别结束:\n");
    	printf("=============================================================\n");
    	if (NULL != rec_rslt)
    		printf("%s\n", rec_rslt);
    	else
    		printf("没有识别结果!");
    	printf("=============================================================\n");
    
    	goto run_exit;
    
    run_error:
    	if (NULL != pcm_data) {
    		free(pcm_data);
    		pcm_data = NULL;
    	}
    	if (NULL != f_pcm) {
    		fclose(f_pcm);
    		f_pcm = NULL;
    	}
    run_exit:
    	QISRSessionEnd(session_id, NULL);
    	return errcode;
    }
    

    2.5程序主函数

    int main(int argc, char* argv[])
    {
    	const char *login_config    = "appid = 自己的appid"; //登录参数
    	UserData asr_data; 
    	int ret                    = 0 ;
    
    	ret = MSPLogin(NULL, NULL, login_config); //第一个参数为用户名,第二个参数为密码,传NULL即可,第三个参数是登录参数
    	if (MSP_SUCCESS != ret) {
    		printf("登录失败:%d\n", ret);
    		goto exit;
    	}
    
    	memset(&asr_data, 0, sizeof(UserData));
    	printf("构建离线识别语法网络...\n");
    	ret = build_grammar(&asr_data);  //第一次使用某语法进行识别,需要先构建语法网络,获取语法ID,之后使用此语法进行识别,无需再次构建
    	if (MSP_SUCCESS != ret) {
    		printf("构建语法调用失败!\n");
    		goto exit;
    	}
    	while (1 != asr_data.build_fini)
    		_sleep(300);
    	if (MSP_SUCCESS != asr_data.errcode)
    		goto exit;
    	printf("离线识别语法网络构建完成,开始识别...\n");	
    	ret = run_asr(&asr_data);
    	if (MSP_SUCCESS != ret) {
    		printf("离线语法识别出错: %d \n", ret);
    		goto exit;
    	}
    
    	printf("请按任意键继续\n");
    	_getch();
    	printf("更新离线语法词典...\n");
    	ret = update_lexicon(&asr_data);  //当语法词典槽中的词条需要更新时,调用QISRUpdateLexicon接口完成更新
    	if (MSP_SUCCESS != ret) {
    		printf("更新词典调用失败!\n");
    		goto exit;
    	}
    	while (1 != asr_data.update_fini)
    		_sleep(300);
    	if (MSP_SUCCESS != asr_data.errcode)
    		goto exit;
    	printf("更新离线语法词典完成,开始识别...\n");
    	ret = run_asr(&asr_data);
    	if (MSP_SUCCESS != ret) {
    		printf("离线语法识别出错: %d \n", ret);
    		goto exit;
    	}
    
    exit:
    	MSPLogout();
    	printf("请按任意键退出...\n");
    	_getch();
    	return 0;
    }
    

    至此,几大函数分析基本完成,细节还需要深挖,本人也是刚接触语音识别,也不是很懂,还需要各路大神不吝啬赐教。

    三、将上述代码做成DLL被其他程序调用------改写上述函数进行调用时,需特别注意函数声明,切勿重复声明。
    3.1创建dll项目
    3.2更改我们的头文件和源文件
    3.3生成DLL文件,找到我们的DLL文件。
    参考:https://blog.csdn.net/qq_37924224/article/details/115524682
    注:科大讯飞的官方demo在VS2015版本以上不支持64位,仅支持32位。

    展开全文
  • groupmod命令用于更改群组的识别码或名称时。不过大家还是要注意,用户名不要随意修改,组名和 GID 也不要随意修改,因为非常容易导致管理员逻辑混乱。如果非要修改用户名或组名,则建议大家先删除旧的,再建立新的...
  • 3进入应用,选择离线命令识别,下载其中的 Linux MSC 4下载完成后解压到目录 5找到里面的示例:sample文件夹中的asr_offline_sample文件夹即可,这里主要修改里面的两个文件,一个是Makefile,另一个就是64...

    本文只是对其例子进行调用实验。

    1.到讯飞开放平台 注册/登录 自己的账号。

    讯飞开放平台-以语音交互为核心的人工智能开放平台

    2 注册完后申请一个应用,如下所示

    3进入应用,选择离线命令词识别,下载其中的 Linux MSC

    4下载完成后解压到目录

    5找到里面的示例:sample文件夹中的asr_offline_sample文件夹即可,这里主要修改里面的两个文件,一个是Makefile,另一个就是64bit_make.sh,可以使用sudo gedit 命令来编辑,具体修改如下所示,这里主要修改的是路径

    将三个文件夹的路径添加到文件中

    删除中间的省略符即可

    6修改完成后在当前asr_offline_sample文件夹下编译

    source 64bit_make.sh
    make

    编译后如下所示

    可以在bin文件夹下找到编译好的程序,但是运行时发现找不到动态库,因此需要执行以下步骤

    7新打开一个终端,执行下面代码

    sudo apt-get install gcc-multilib g++-multilib module-assistant

    安装完成后,找到libmsc.so的路径,将libs/x64/libmsc.so复制到/usr/local/lib/ 下,执行

    sudo ldconfig
    make

    完成后,即可运行bin文件夹下的可执行文件,运行效果如下。

    问题解决:

    1.

    linuxrec.c:12:28: fatal error: alsa/asoundlib.h: 没有那个文件或目录

    ROS里面缺少了一个库在终端里执行以下命令即可:

    sudo apt-get install libasound2-dev
    

     

    展开全文
  • 语音命令识别

    千次阅读 2018-08-25 16:46:53
    语音命令识别的方案有:讯飞在线\离线语音命令识别,还有一个方案是基于TensorFlow的机器学习。后者不需要费用,但是需要训练(所谓训练不是像宠物一样,每个宠物都需要训练一遍,而一次训练生成模板后,所...

    现在反倒自然语言处理的API比较多,各大厂都有。能快速处理语音命令词(关灯,开灯,左转,右转,停止)的并不多,都默认按照自然语言处理的,这会带来两个问题: 1是识别速度慢 2.准确度不够高。

    语音命令词识别的方案有:讯飞在线\离线语音命令词识别,还有一个方案是基于TensorFlow的机器学习。后者不需要费用,但是需要训练(所谓训练不是像宠物一样,每个宠物都需要训练一遍,而一次训练生成模板后,所有的设备上都可以使用)。

    TensorFlow语音命令词识别

    这个文章中有相应的介绍,会让你在自己的电脑上基于Google搜集的语音命令词语音(wav文件)进行训练,大概需要几个小时模板文件就能创建了,可以识别测试。我按照这些步骤都走通了。在测试时基本也能识别,但是似乎有一个问题,识别速度比较慢,大概需要2秒中能给出答案,这让我感觉不是太好。不过最终没有放弃,准备试试Google做的Android系统的Demo(TF Speech)直接用来测试。
    这里写图片描述
    这里测试的速度基本达到预期了,话音刚落就识别出来了。

    注:没有下载到编译好的,只得自己编译,我把我编译好的上传,方便各位测试。
    下载地址:https://download.csdn.net/download/kangear/10626585

    如果需要自行编译,可以按照https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android#prebuilt-components步骤,需要把build.gradle改一点就可以编译通过了:

    def nativeBuildSystem = 'none'

    展开全文
  • 离线语音控制命令识别,全向麦、会议蓝牙音箱方案
  • 科大讯飞的语音命令识别(离线): 首先去科大讯飞官网注册App、拿到key,然后下载相应的SDK, 然后把下载下来的demo倒入到项目中,在下载文件中的demo在sampel的下级文件中 在Android studio中选择 ...
  • 在Windows环境中,进行golang程序的开发,配置好go环境变量后,使用vscode编辑器开发、调试golang程序过程中,发现使用vscode的命令行终端无法识别环境变量参数。 查阅资料,发现大多写的都是设置vscode为“以管理...
  • 讯飞语音离线命令识别示例demo

    热门讨论 2015-08-19 14:31:45
    博客讲解离线命令识别的示例Demo源码
  • 科大讯飞离线语音命令识别的使用说明

    万次阅读 多人点赞 2018-08-27 22:30:29
    最近因为项目的需求,需要在无网络的情况下实现语音识别的功能,因为之前在线识别一直用的科大的,所以经理就和我说,你花半天时间简单熟悉一下,然后出一个Demo,下午有人过来看;因为之前科大在线SR也是别人做的,...
  • 但在c盘新建的文件夹内,打开命令行使用java命令则不识别 确认环境变量内路径正确,检查该新建文件夹的访问权限,右键》属性》安全, 管理员和user配置所有权限,再尝试java命令应该就能识别了。 可能和win ...
  • 关于在VSCode终端中无法识别npm等命令的推测原因及解决方法
  • 该程序是非特定人语音识别程序,原来在SPCE500A下运行,能识别并应答16个命令,存储空间为128K字节。
  • 当stata提示信息“unrecognized command: xxx”时,意味着命令“xxx”无法识别。主要包括三类:第一类是Stata自带的,统一存放于“D:\Stata\ado\base”文件夹下,这些命令通常不会出现无法识别的问题;第二类是自己...
  • htk 搭建语音命令识别工具包

    千次阅读 2014-04-29 14:03:25
    在这里,我们以一个常用命令(打开、关闭、开始、停止)的语音识别任务为例,介绍一下如何利用HTK快速地建立这样一个语音命令识别系统,让电脑识别出你所说的简单命令。当然,如果要想识别任何其它的词,原理及过程...
  • code : 无法将“code”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确 ,然后再试一次。 PS:cmd和powershell都可以打开vscode,如果是cmd,报错显示为 这都...
  • 终端命令以下,能够看到编译器位置在/home/gjn/anaconda2/bin/pythonweb pycharm中添加编译器 pycharm的File | Settings | Project| Project Interpreter,以下点击add。python2.7 在existing environment下选择步骤...
  • 简单命令语音识别

    2014-05-12 16:36:37
    一个封装好的语音识别类和xml文件,囊括了windows语音识别的基本操作,适合学习使用
  • 人工智能-语音识别-一种基于RBF神经网络的命令集语音识别系统研究.pdf
  • 这是我们计算机视听觉的第三个实验,也是本学期语音部分的最后一个实验,大概花了两天才写完。上个实验做的是语音编码问题,这个实验是语音识别的事,感觉处理语音还是比较有意思的。
  • cmd无法识别javac命令

    万次阅读 2016-03-26 14:33:10
    javac命令是用来编译java文件的,将java文件编译成class文件。 如果在cmd里面运行:javac -version 提示没有该命令,原因就是因为没有在系统变量path中配置JDK的安装路径。 path是windows在执行一个命令的时候所...
  • ROS语音识别科大讯飞语音SDK

    千次阅读 2020-11-16 11:33:00
    访问科大讯飞开放平台—创建语音识别应用—获取应用的APPID 2,下载SDK文件 在应用页面或网站导航栏可以下载SDK文件,下载Linux版本 3,安装相关依赖包 在终端依次执行以下命令 $ sudo apt-get update $ sudo apt-...
  • 人工智能-语音识别-实用的非特定人命令集汉语语音识别系统若干关键技术的研究.pdf
  • 人工智能-语音识别-基于DSP的非特定人命令集汉语语音识别系统的设计和实现.pdf
  • docker 命令无法识别

    千次阅读 2022-03-31 13:24:40
    安装完win10docker以后发现怎么敲命令都是无法识别, cmd “docker --version”,显示“不是内部或外部命令,也不是可运行的程序 或批处理文件”。 使用PowerShell更出现“无法将“docker”项识别为 cmdlet、函数、...
  • Linux 处理ifconfig不识别问题

    千次阅读 2022-01-27 17:18:58
    1、问题现象,ifconfig命名找不到 2、查找命名属于哪个包 yum search ifconfig 3、安装 yum install net-tool* 4、验证 ifconfig此时就能正确识别
  • 在官网下载离线SDK,找到官方提供的帮助文档,其中Development Manual.pdf是关于API说明,用于帮助你理解demo中代码,BNF Grammar Development Manual.pdf比较关键,帮助你定义自己的离线命令语法格式。 下面是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 489,866
精华内容 195,946
关键字:

命令识别