CN104468572A - 一种Android手机语音远程控制菌种挑选仪的方法 - Google Patents

一种Android手机语音远程控制菌种挑选仪的方法 Download PDF

Info

Publication number
CN104468572A
CN104468572A CN201410738598.4A CN201410738598A CN104468572A CN 104468572 A CN104468572 A CN 104468572A CN 201410738598 A CN201410738598 A CN 201410738598A CN 104468572 A CN104468572 A CN 104468572A
Authority
CN
China
Prior art keywords
order
command
instrument
voice
bacterial classification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410738598.4A
Other languages
English (en)
Inventor
李昕
冉鹏
柴宇燊
卢夏衍
张荣福
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Shanghai for Science and Technology
Original Assignee
University of Shanghai for Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Shanghai for Science and Technology filed Critical University of Shanghai for Science and Technology
Priority to CN201410738598.4A priority Critical patent/CN104468572A/zh
Publication of CN104468572A publication Critical patent/CN104468572A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/432Query formulation
    • G06F16/433Query formulation using audio data
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及了一种Android手机语音远程控制菌种挑选仪的方法。它包括以下步骤:利用Android手机麦克风实现语音信号的输入;对输入的一段有效语音信号利用在线的语音处理引擎进行语音识别;将识别后的文本信息通过网络通信的方式传送到PC端;PC端接收到命令后,利用预先定义的命令库进行命令匹配;将匹配的结果作出相应的命令处理,实现菌种挑选仪的运动。若未能匹配到相应的结果,则不作任何处理;将命令处理的结果信息反馈给当前Android手机用户。本发明将计算机网络通信与语音信号分析与处理紧密结合,实现Android手机语音远程控制菌种挑选仪,使得菌种挑选仪能自动的跟随人类的语音进行相应的运动,使菌种挑选仪具备一定的语音交互能力,有利于建立一种更加和谐的、便捷的远程控制环境,实现真正意义上的人机交互,这也将是未来人工智能的最要发展方向。

Description

一种Android手机语音远程控制菌种挑选仪的方法
技术领域
   本发明属于计算机网络通信和模式识别与智能控制领域,具体涉及的Android手机语音远程控制菌种挑选仪的方法。
背景技术
菌落是指单个细菌(或其他微生物)在固体或液体培养基表面生长繁殖到一定程度,由数以亿计子细胞群落集合形成一团肉眼可见、有一定形态、构造特征的子细胞集团。当细菌样品被稀释到一定程度,与培养基混合,在一定培养条件下,每个能够生长繁殖的细菌细胞都可以在平板上形成一个可见的菌落。
菌落培养是农业、食品、医药卫生分析中进行质量检测以及抗生素类药品制作中一项基本却又重要的工作,而菌落筛选与统计又是其中最重要的一个环节。通过菌种挑选仪的操作就是用来挑选优质高产的菌种,具有筛选量大,要求效率高等特点。在智能控制领域中,如能利用移动设备通过语音来控制菌种挑选仪,那将会使菌种挑选仪的操作更加便捷、更加具有趣味性、并且也能很有效率地完成菌种挑选操作。
发明内容
本发明的目的在于针对已有技术存在的缺陷,提供一种Android手机语音控制菌种挑选仪的方法,利用移动设备通过语音识别实现对PC端软件进行语音远端控制的功能,进而控制实际的硬件操作平台。本发明所设计的移动终端控制软件并不仅仅只是单一的对PC端软件进行控制,它还能完成其他任何已经实现了TCP/IP通信协议的平台进行数据通信。在本发明中,对实现远端控制功能作了特定的处理。由用户通过一部Android手机向其输入语音信号,经过语音识别后将识别结果发送到远端,形成特定的命令,从而实现对远端软件的控制,进而实现对菌种挑选仪的运动控制。
为达上述目的,本发明的构思和原理是:
本发明的Android手机语音远程控制菌种挑选仪的方法,其实验平台包括一部采用Android操作系统的手机的麦克风模块,语音识别模块,网络通信模块,菌种挑选仪软件控制模块。
通过Android手机麦克风模块采集一段有效的语音信号,经过语音识别模块实现在线语音识别,将输入的语音信号转换为相应的文本信息,再通过网络通信模块的桥接作用,建立起远端与移动终端的通信连接,将识别结果自动地发送到远端,远端为菌种挑选仪软件控制模块,远端接收到命令后自动判断该命令的有效性并决定是否作出相应的动作。
本发明所涉及的Android手机语音远程控制菌种挑选仪的方法,主要包括以下功能:
(1)语音识别模块:通过麦克风输入语音信号,利用在线语音识别引擎,能够将一段有效的语音信号识别为对应的文本信息。
(2)网络通信模块:采用TCP/IP通信协议,在Android手机端与PC端建立连接,将语音识别引擎识别出来的文本信息作为命令通过网络通信模块发送到PC端。
(3)菌种挑选仪软件控制模块:接收Android手机端发送来的命令,对命令进行处理,并对命令作出相应的响应,实现对菌种挑选仪的控制。
根据上述发明构思和原理,本发明对三个模块采用以下解决方案:
对上述功能(1)中语音识别模块解决方案为:为了实现更好的语音识别效果,利用在线语音识别引擎实现语音识别。本发明采用目前国内语音识别领域处于领先地位的科大讯飞公司所研究的语音识别引擎,科大讯飞公司提供了一套基于Android系统的语音识别软件接口,用于实现在线语音识别。
对上述功能(2)中网络通信模块解决方案为:此模块需要完成在不同平台之间建立连接,实现数据通信。采用TCP/IP协议,建立客户/服务器模型,在客户端和服务器端分别实现TCP(Transmission Control Protocol 传输控制协议,以下简称TCP)或UDP(User Datagram Protocol 用户数据报协议,以下简称UDP)通信方式,从而实现不同平台之间的网络通信。
对上述功能(3)中菌种挑选仪软件控制模块解决方案为:此模块为菌种挑选仪的直接控制模块,在此模块中增加了用于网络通信的独立控制模块,以接收Android手机端发送过来的命令消息,并对命令进行实时地处理,最终作出相应的响应,实现对菌种挑选仪的控制。
根据上述发明构思,本发明采用下述技术方案:
Android手机语音远程控制菌种挑选仪的方法,其特征在于具体操作步骤如下:
(1)语音输入:利用Android手机的麦克风实现语音的输入;
(2)语音处理:利用在线的语音处理引擎,将输入的语音信号处理为文字信息;
(3)命令发送:得利用TCP/IP协议进行网络通信,将识别出来的文字命令发送到PC端;
(4)命令匹配:在PC端预先设定命令库,经过一定的算法将接收到的命令与命令库中的命令进行匹配;
(5)命令处理:经过命令匹配后得到的结果作出相应的处理;
(6)命令处理反馈:将命令处理结果反馈给当前用户。
所述步骤(1)语音输入:用户通过手持一部Android手机,对着其麦克风说出想说的话,即输入语音信号。
所述步骤(2)语音处理:如果用户输入了一段有效的语音,则利用在线语音识别引擎进行处理,识别出文字信息;以两种不同风格的方式进行语音识别:1)说话人无关的语音识别;2)关键词识别;其中说话人无关的语音识别用于识别任何说话人的语音信号,并识别出相应的结果;关键词识别只能识别用户预定义的词或字,对于未定义的词或字无法进行识别。
所述步骤(3)命令发送:通过建立基于TCP/IP通信协议的网络通信的客户/服务器模型,实现客户端与服务器端进行数据通信;即是利用此方式将语音识别引擎识别出来的文字信息发送到PC端。
所述步骤(4)命令匹配:在PC端接收到Android手机端发送的数据后,即一个命令消息,将此命令与预先设定好的一个命令库进行完全匹配或模糊匹配,以最优的方式匹配到最终的结果。
所述步骤(5)中命令处理的方法:经过与命令库中命令匹配后,得出相应的可执行的命令消息结果,若只匹配到唯一一个命令,则执行该命令,并实现菌种挑选仪的运动;若匹配到模糊命令,即匹配到多个相似命令,或无法匹配到从Android手机端发送来的命令,则不作任何处理。
所述步骤(6)命令处理反馈:在经过与命令库匹配后,将得到的最终匹配的命令并执行相应的命令,将执行成功的消息反馈给当前Android手机用户;若未能执行相应的命令,则将相应的错误信息反馈给当前Android手机用户。
本发明与现有技术相比较,具有如下显而易见的突出实质性特点和显著性进步:
本发明利用一部Android手机,通过Android手机麦克风输入语音信号,经过在线的语音信号处理,识别出相应的文字信息;再利用网络通信技术,将识别出来的文字信息作为命令发送到远端;远端接收到相应的命令后,对命令合理地进行处理,准确判断命令的有效性,并对有效的命令作出相应的操作;最后将操作的结果信息反馈给当前的用户。从而完成了通过Android手机对远端软件的控制。本发明将计算机网络通信与语音信号分析与处理紧密结合,实现Android手机语音远程控制菌种挑选仪,使得菌种挑选仪能自动地跟随人类的语音进行相应的运动,使菌种挑选仪具备一定的语音交互能力,有利于建立一种更加和谐的、便捷的远程控制环境,实现真正意义上的人机交互,这也将是未来人工智能的最要发展方向。
附图说明
图1本发明的实现方法的操作程序框图;
图2为本发明的系统结构框图;
图3为Android平台客户端网络通信设置界面图;
图4为Windows平台服务器端网络通信设置界面图;
图5为菌种挑选仪控制软件主界面图;
图6为菌种挑选仪控制软件配置页界面图;
图7为菌种挑选仪控制软件拍照页界面图;
图8为菌种挑选仪控制软件筛选页界面图;
图9为菌种挑选仪控制软件接种页界面图;
图10为说话人无关的语音识别的实际测试图;
图11为关键词识别上传命令词的操作图;
图12为关键词识别的实际测试图;
图13为Android平台和Windows平台下网络通信设置图;
图14为连接网络通信后菌种挑选仪控制软件主界面图;
图15为关键词识别控制菌种挑选仪控制软件主界面内的“启动”命令操作结果图;
图16为关键词识别控制菌种挑选仪控制软件配置页内的“方式1”命令操作结果图;
图17为关键词识别控制菌种挑选仪控制软件配置页内的“横向依次”命令操作结果图;
图18为关键词识别控制菌种挑选仪控制软件内选择“拍照”页的命令操作结果图;
图19为关键词识别控制菌种挑选仪控制软件内选择“筛选”页的命令操作结果图;
图20为关键词识别控制菌种挑选仪控制软件内选择“接种”页的命令操作结果图;
图21为关键词识别控制菌种挑选仪控制软件的“退出”命令操作结果图;
图22为说话人无关的语音识别控制菌种挑选仪控制软件配置页内的“设置每针挑选数”命令操作结果图;
图23为说话人无关的语音识别控制菌种挑选仪控制软件配置页内的“从平皿挑取克隆总数”命令操作结果图;
图24为说话人无关的语音识别控制菌种挑选仪控制软件配置页内的“接种震动”命令操作结果图;
图25为说话人无关的语音识别控制菌种挑选仪控制软件配置页内的“加热时间”命令操作结果图;
图26为说话人无关的语音识别控制菌种挑选仪控制软件配置页内的模糊匹配“停留时间”命令结果图;
图27为说话人无关的语音识别控制菌种挑选仪控制软件配置页内对未定义命令的实际测试图;
图28为说话人无关的语音识别控制菌种挑选仪控制软件配置页内对未定义命令的操作结果图。
具体实施方式
下面结合附图说明对本发明的优选实施例做详细描述。
实施例一:
参见图1,本Android手机语音远程控制菌种挑选仪的方法,其特征在于具体操作步骤如下:
(1)语音输入:利用Android手机的麦克风实现语音的输入;
(2)语音处理:利用在线的语音处理引擎,将输入的语音信号处理为文字信息;
(3)命令发送:得利用TCP/IP协议进行网络通信,将识别出来的文字命令发送到PC端;
(4)命令匹配:在PC端预先设定命令库,经过一定的算法将接收到的命令与命令库中的命令进行  匹配;
(5)命令处理:经过命令匹配后得到的结果作出相应的处理;
(6)命令处理反馈:将命令处理结果反馈给当前用户。
实施例二:
参见图2,本实施例与实施例一基本相同,特别之处如下:
所述步骤(1)语音输入:用户通过手持一部Android手机,对着其麦克风说出想说的话,即输入语音信号。
所述步骤(2)语音处理:如果用户输入了一段有效的语音,则利用在线语音识别引擎进行处理,识别出文字信息;以两种不同风格的方式进行语音识别:1)说话人无关的语音识别;2)关键词识别;其中说话人无关的语音识别用于识别任何说话人的语音信号,并识别出相应的结果;关键词识别只能识别用户预定义的词或字,对于未定义的词或字无法进行识别。
所述步骤(3)命令发送:通过建立基于TCP/IP通信协议的网络通信的客户/服务器模型,实现客户端与服务器端进行数据通信;即是利用此方式将语音识别引擎识别出来的文字信息发送到PC端。
所述步骤(4)命令匹配:在PC端接收到Android手机端发送的数据后,即一个命令消息,将此命令与预先设定好的一个命令库进行完全匹配或模糊匹配,以最优的方式匹配到最终的结果。
所述步骤(5)中命令处理的方法:经过与命令库中命令匹配后,得出相应的可执行的命令消息结果,若只匹配到唯一一个命令,则执行该命令,并实现菌种挑选仪的运动;若匹配到模糊命令,即匹配到多个相似命令,或无法匹配到从Android手机端发送来的命令,则不作任何处理。
所述步骤(6)命令处理反馈:在经过与命令库匹配后,将得到的最终匹配的命令并执行相应的命令,将执行成功的消息反馈给当前Android手机用户;若未能执行相应的命令,则将相应的错误信息反馈给当前Android手机用户。
实施例三:
参见图3~图10,本实施例与实施例二基本相同,特别之处如下:
根据上述步骤,其功能的具体实现方法如下:
本实施例涉及到的语音识别模块部分,其具体实现方法如下:
在使用科大讯飞公司的语音识别引擎之前,需要在讯飞语音云开放平台首页申请一个APPID,申请成功后方可使用该公司的语音识别服务。
此模块的功能实现是基于Android系统平台的,需要利用Eclipse开发工具建立一个Android工程,在工程的libs目录下添加该公司提供的语音软件开发包中的Msc.jar文件,再在工程的libs目录下新建一个armeabi文件目录,在armeabi目录下添加libmsc.so文件。
在使用开发语音软件工作开始时,需要事先在工程中应用程序入口代码处调用SpeechUser.getUser().login方法,传入在讯飞语音云开放平台首页申请的APPID,登录到讯飞语音云,才能在线使用讯飞公司的语音识别服务,以便后续的开发工作。
1) 说话人无关的语音识别:
需要用到SpeechRecognizer或RecognizerDialog类,这两个类都提供了对说话人无关的语音识别的封装。前者是无UI的语音识别,后者是有UI的语音识别。使用这两个类需要引入以下两个包名:
import com.iflytek.cloud.speech.SpeechRecognizer;
import com.iflytek.cloud.ui.RecognizerDialog;
本实施例中将介绍用RecognizerDialog类来实现说话人无关的语音识别。
在代码实现中,创建RecognizerDialog语音识别对象后,需要通过RecognizerDialog.setParameter方法设置一些主要的参数,本实施例中说话人无关的语音识别的一些主要参数设置如下:
设置好相关参数后,还需要通过RecognizerDialog.setListener方法设置识别结果监听器,以获取识别的结果反馈。该方法需要传入一个RecognizerDialogListener对象,需要引入以下包名:
import com.iflytek.cloud.ui.RecognizerDialogListener;
RecognizerDialogListener对象是一个接口,需要实现其内部未实现的方法,所实现的方法即是接收识别的结果反馈。
最后通过RecognizerDialog.show方法启动说话人无关的语音识别。
2)关键词识别:
同1)中说话人无关的语音识别相同,需要用到SpeechRecognizer或RecognizerDialog类,需引入以下包名:
import com.iflytek.cloud.speech.SpeechRecognizer;
import com.iflytek.cloud.ui.RecognizerDialog;
此外还需要用到DataUploader类,需引入以下包名:
 import com.iflytek.cloud.speech.DataUploader;
本实施例中将介绍用RecognizerDialog类来实现关键词识别。
创建RecognizerDialog语音识别对象后,需要通过RecognizerDialog.setParameter方法设置一些主要的参数,本实施例中关键词识别的一些主要参数设置如下:
 可以观察到同1)说话人无关的语音识别参数设置的区别在于需要设置识别的语法id,此id是所定义的关键词的唯一标识,在识别过程中仅能识别这个唯一标识所对应的关键词信息。
 设置好相关参数后,还需要通过RecognizerDialog.setListener方法设置识别结果监听器,以获取识别的结果反馈。该方法需要传入一个RecognizerDialogListener对象,需要引入以下包名:
import com.iflytek.cloud.ui.RecognizerDialogListener;
 RecognizerDialogListener对象是一个接口,需要实现其内部未实现的方法,所实现的方法即是接收识别的结果反馈。
 在开始识别之前,需要上传需要识别的关键词,可以通过DataUploader类来实现关键词的上传。创建DataUploader对象后,需要通过DataUploader.setParameter方法设置以下两个参数:
之后通过DataUploader.uploadData(SpeechListener listener, String name, byte[] data)方法,传入三个参数,从文件中读取数据实现关键词的上传。三个参数的说明如下:
listener:为数据上传的监听器,其内部方法返回一个String类型的语法ID,作为关键词列表的唯一标识;
name:将要上传的关键词列表的文件名;
data:将要上传的关键词数据。
     最后通过RecognizerDialog.show方法启动关键词识别。
本实施例涉及到的网络通信模块部分,其具体实现方法如下:
本实施例中,网络通信模块采用的是基于TCP/IP协议的客户/服务器模型,Android手机作为客户端,PC端菌种挑选仪软件作为服务器端。需要分别为客户端与服务器端实现统一的通信方式,TCP或UDP通信方式。本发明中实现了两种通信方式,现分别对这两个通信方式的实现方法作以下说明:
1) TCP通信:采用TCP方式通信,需要在客户端与服务器端分别实现数据的发送与接收。客户端为Android手机平台,采用的编程语言为Java语言;服务器端为Windows平台,采用的编程语言为C#.Net语言。
Android平台采用TCP方式的客户端的实现:
需要用到Socket、InputStream、DataInputStream、OutputStream、DataOutputStream几个类,需要引入以下几个包名:
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
Socket类对TCP客户端的通信作了封装,可以通过创建一个Socket类对象来实现网络通信的客户端。通过其自身的构造器Socket(String dstName, int dstPort) 来创建一个Socket对象,需要传入两个参数,其中的两个参数说明如下:
dstName:目标主机的IP地址,为IPV4格式的点分十进制形式的字符串;
dstPort:目标主机的端口号,为0-65535之间的整数值,其中0-1024之间的端口号为公认端口 号,故实际端口号应为大于1024并且小于65535的整数值。
InputStream类用于接收数据流,需要通过DataInputStream类来对InputStream类进行封装,获得数据输入流对象。
OutputStream类用于发送数据流,需要通过DataOutputStream类来对OutputStream类进行封装,获得数据输出流对象。
在创建一个Socket类对象后,通过Socket.getInputStream方法获得数据输入流,通过Socket.getOutputStream方法获得数据输出流。再分别通过DataInputStream和DataOutputStream封装输入流和输出流以获得数据输入流对象和数据输出流对象,用于接收和发送数据。具体方法实现如下:
InputStream is = sock.getInputStream();
DataInputStream dis = new DataInputStream(is);
OutputStream os = sock.getOutputStream();
        DataOutputStream dos = new DataOutputStream(os);
分别得到数据输入流和数据输出流对象后,再通过DataInputStream.read方法接收数据,通过DataOutputStream.write方法发送数据。
最后通过Socket.close方法关闭通信的连接。完成TCP方式的客户端数据发送与接收功能。
Windows平台采用TCP方式的服务器端的实现:
需要用到Socket、IPEndPoint两个类,需要引入以下名字空间:
using System.Net;
using System.Net.Sockets;
Socket类对TCP服务器端的通信作了封装,可以通过创建一个Socket类对象来实现网络通信的服务器端。通过其自身的构造器Socket(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)来创建一个Socket对象,需要传入三个参数,其中的三个参数说明如下:
addressFamily:网络通信的网络格式,指定Socket的实例可以使用的寻址方案,传入AddressFamily.InterNetwork,表示Socket类接收IPV4版本的IP地址;
socketType:套接字类型,指定Socket的实例表示的套接字类型,传入SocketType.Stream,表示Socket类采用可靠的、面向连接的流式套接字;
protocolType:协议类型,指定Socket类支持的协议,传入ProtocolType.Tcp,表示Socket类 采用TCP通信方式。
IPEndPoint类将网络端点表示为IP址和端口号,通过其构造方法指定客户端IP地址和端口号,其构造方法为IPEndPoint(IPAddress address, int port),传入的两个参数说明如下:
address:指定可建立连接的IPV4地址,传入IPAddress.Any,表示可与任何IP地址建立连接;
port:与IP地址关联的端口号,其值为1024到65535之间的整数值。
通过Socket.Bind方法绑定IP地址和端口号。
通过Socket.Listen方法添加监听器,设置能够与之建立连接的客户端个数。
通过Socket.Accept方法建立连接,并等待连接请求,该方法返回一个Socket对象,为客户端发送过来的地址信息,需要将此对象保存起来,并通过此对象接收从客户端发送过来的数据和向客户端发送数据。
在收到客户端的地址信息后,通过Socket.ReceiveFrom方法接收客户端发送来的数据,通过Socket.SendTo方法向客户端发送数据。
最后通过Socket.Close方法关闭通信的连接。完成TCP方式的服务器端数据发送与接收功能。
2)UDP通信:采用UDP方式通信,需要在客户端与服务器端分别实现数据的发送与接收。客户端为Android手机平台,采用的编程语言为Java语言;服务器端为Windows平台,采用的编程语言为C#.Net语言。
Android平台采用UDP方式的客户端的实现:
需要用到DatagramSocket。DatagramPacket、InetSocketAddress几个类,需要引入以下几个包名:
import java.net.DatagramSocket;
import java.net.DatagramPacket;
import java.net.InetSocketAddress;
DatagramSocket类对UDP客户端的通信作了封装,可以通过创建一个DatagramSocket类对象来实现网络通信的客户端。
DatagramPacket类是对数据报进行包裹,通过Socket类将整个包裹发送到服务器端。通过其自身的构造方法DatagramPacket(byte[] data, int length, SocketAddress sockAddr)创建一个DatagramPacket对象,输入三个参数,将需要发送的数据和服务器端地址包裹在一个对象内,三个参数说明如下:
data:需要向服务器端发送的数据,为字节数组;
length:需要向服务器端发送的数据长度;
sockAddr:服务器端的地址信息,为一个SocketAddress 对象,可通过InetSocketAddress对象来构造。
InetSocketAddress类用于绑定服务器端的地址信息,通过其构造InetSocketAddress.InetSocketAddress(String host, int port)传入两个参数来创建一个Socket地址对象,两个参数说明如下:
host:需要绑定的IP地址,为IPV4格式的点分十进制形式的字符串;
port:需要绑定的端口号,为1024到65535之间的整数值。
通过Socket.send方法,传入一个DatagramPacket对象,向服务器端发送数据。
通过Socket.receive方法,传入一个DatagramPacket对象,向服务器端接收数据。
最后Socket.close方法关闭通信的连接。完成UDP方式的客户端数据发送与接收功能。
Windows平台采用UDP方式的服务器端的实现:
需要用到Socket、IPEndPoint两个类,需要引入以下名字空间:
using System.Net;
using System.Net.Sockets;
Socket类对UDP服务器端的通信作了封装,可以通过创建一个Socket类对象来实现网络通信的服务器端。通过其自身的构造器Socket(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)来创建一个Socket对象,需要传入三个参数,其中的三个参数说明如下:
addressFamily:网络通信的网络格式,指定Socket的实例可以使用的寻址方案,传入AddressFamily.InterNetwork,表示Socket类接收IPV4版本的IP地址;
socketType:套接字类型,指定Socket的实例表示的套接字类型,传入SocketType.Dgram,表示Socket类采用不可靠的、面向无连接的数据报套接字;
protocolType:协议类型,指定Socket类支持的协议,传入ProtocolType.Udp,表示Socket类 采用UDP通信方式。
IPEndPoint类将网络端点表示为IP址和端口号,通过其构造方法指定客户端IP地址和端口号,其构造方法为IPEndPoint(IPAddress address, int port),传入的两个参数说明如下:
address:指定可建立连接的IPV4地址,传入IPAddress.Any,表示可与任何IP地址建立连接;
port:与IP地址关联的端口号,其值为1024到65535之间的整数值。
通过Socket.Bind方法绑定IP地址和端口号。
由于UDP通信方式是一种面向无连接的通信方式,故不需要等待客户端的连接请求即可进行通信,通过Socket.ReceiveFrom方法接收客户端发送来的数据,通过Socket.SendTo方法向客户端发送数据。
最后通过Socket.Close方法关闭通信的连接。完成UDP方式的服务器端数据发送与接收功能。
Android平台客户端网络通信设置界面如图3所示
本实施例涉及到的菌种挑选仪软件控制模块,其具体实现方法如下:
此模块为菌种挑选仪直接控制模块,该软件通过PC端接口与菌种挑选仪设备相连接,可以通过软件来直接控制菌种挑选仪的运动。在本发明中,控制菌种挑选仪的软件功能都已经实现,该软件有多个界面,分别如图5、6、7、8、9所示。现需要的是利用远程控制的功能,通过远端移动设备来操作PC端菌种挑选仪控制软件,从而间接实现对菌种挑选仪的控制。完成远程控制的功能模块,需要在菌种挑选仪软件中增加独立的控制模块,此模块能够接收远端发送来的命令,对命令作出响应,并完成相应的操作。增加的独立控制模块的实现即为上述网络通信模块实现方法中基于Windows平台的服务器端的实现,其软件界面如图4所示。
在图4所示界面中,主机IP地址由软件自动获取的当前网络连接的IPV4地址,可以使客户端更便捷地指定服务器端的IP地址。自动获取本机IP地址的方式可以通过System.Net.IPAddress类和System.Net.Dns类获取。
具体获取IP地址方法如下代码段所示:
IPAddress[] ipAddrs = Dns.GetHostAddresses(Dns.GetHostName());
通过Dns类的静态方法GetHostAddresses和GetHostName相结合可以得到本机中所有IP地址,再将获得的IP地址簇中通过判断IPAddress.AddressFamily属性值为AddressFamily.InterNetwork即为本机中的IPV4地址。
在图4所示界面中,设置好端口号和选择其中一种通信方式后,选中创建连接,点击完成后即启动了服务器的监听,可以与客户端进行通信。其内部的实现方式已由上述功能实现的网络通信模块中的Windows平台服务器端的实现中介绍。
至此,完成了菌种挑选仪软件控制的前期准备,接下来就需要完成实际的控制功能。
要实现远端对菌种挑选仪的控制功能,需要用到Windows编程中的消息机制,通过传递消息的形式来实现命令响应。在C#.Net中使用消息机制需要用到DllImport类属性,用来从Dll类库中引入方法。使用DllImport类属性需要引入以下名字空间:
using System.Runtime.InteropServices;
其中需要用到的传递消息的方法是SendMessage方法,将消息发送给指定对象,使用时需要作以下声明:
[DllImport("User32.dll", EntryPoint = "SendMessage")]
        public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
SendMessage方法中,需要传入四个参数,四个参数说明如下:
hWnd:指定接收消息的窗口句柄;
msg:指定被发送的消息;
wParam:指定附加的消息特定信息;
lParam:指定附加的消息特定信息。
在接收到远端发送来的命令后,就需要对命令进行处理,命令处理方式如下:
菌种挑选仪控制软件有多个界面,要对每个界面实现控制,可根据菌种挑选仪控制软件界面所示的文本提示信息,采用“所看即所得”的方式,将软件界面上的文本提示信息作为命令,并存入一个命令库中,每一条命令都是由一个文本提示信息和一个命令ID组成。在接收到一个命令后,将该命令与命令库中的命令进行逐一匹配,为了使命令匹配有更高的效率和健壮性,命令库的构建和命令匹配的方式可采用以下策略:
1)建立多个命令库:菌种挑选仪控制软件有多个界面,采用“所看即所得”的方式,为当前显示的界面中能看见的文本提示信息对应的操作建立相应的命令,每一个界面能够建立一个命令库,多个界面能够建立多个独立的命令库,当当前软件界面改变后,相应的有效的命令库也随之改变。这样,在各界面之间不会互相影响,并且能够达到不会“误操作”,还能提高命令匹配的效率,即只在一个小的范围内搜索,而非从多个命令库搜索。
2)以文本提示信息中的关键词作为命令:在菌种挑选仪控制软件界面中,将能操作的行为用一个容易想到的词来代替实际的操作,保证了操作的便捷性。比如:菌种挑选仪控制软件中配置页(如图6所示)内有一文本提示信息“从平皿挑取克隆总数”,对应了一个操作。可以选取“克隆总数”为关键词,作为一个命令,当命令中包含“克隆总数”这个关键词时,能迅速地定位到“从平皿挑取克隆总数”这个目标区域,并作出相应的操作。
3)保证命令词的唯一性:为了保证不会误操作,在设计命令词时,需要保证命令词的唯一性,每一个命令词都只对应一个命令操作。这样,在接收到命令时能够准确无误地执行该命令,保证了对菌种挑选仪控制的安全性。如果匹配到命令库中的唯一命令,并执行该命令,执行完成后向用户提示“命令执行成功”的反馈信息;如果无法匹配到命令库中的命令,则不对命令作任何响应,但向用户反馈“无法识别的命令”的反馈信息。
4) 采用完全匹配和模糊匹配相结合的方式:由于在菌种挑选仪控制软件中,存在多个相似的命令,如:“抓取停留时间”、“接种停留时间”,都包含了“停留时间”这个词组,所以要准确定位到某个命令,就需要完全匹配这个命令,如只发送“停留时间”这个命令,则不能执行该命令,并向用户提示“匹配到多个命令,无法执行该命令”。而有的操作中,文本提示信息较长,如2)中所提到的“从平皿挑取克隆总数”这个提示信息,可以采用模糊匹配的方法,即可以不完整的匹配这个提示信息,但需要包含这个提示信息的关键词“克隆总数”,这也就可以准确地匹配到命令,并执行相应的操作。这样,保证了命令执行的精确性,也保证了命令控制的灵活性。
根据上述策略,在接收到远端发送来的命令后,若得到唯一匹配结果,则将该命令对应的命令ID通过SendMessage方法传入相应的ID值并发送该消息,应用程序收到消息后执行该命令,并将命令执行成功的状态通过网络通信的方式反馈给当前的用户。若收到的命令在经过命令库的模糊匹配后得到多个相似命令,则不执行该命令,并要求用户更换更精确的命令,同时将当前命令执行错误的信息通过网络通信的方式反馈给当前用户。若收到的命令在经过命令库匹配后,未能匹配到相应的命令,则无法执行该命令,并将当前命令执行错误的信息通过网络通信的方式反馈给当前用户。
这样,就完成了从移动终端(Android手机)对PC端软件(菌种挑选仪控制软件)的远程控制,从而间接地控制了实际的物理平台(菌种挑选仪)。
参见图10,本实施例所涉及的说话人无关的语音识别的软件设计界面及实际的操作结果。
如图10所示,本实施例中,点击“开始识别”按钮,弹出识别对话框启动语音识别,当用户说“你好,很高兴跟你做朋友”结束后,将对应的识别结果显示在了文本编辑框内,实现了说话人无关的语音识别。
实施例四:
参见图11、12,本实施例所涉及的关键词识别的软件设计界面及实际的操作结果。
如图11、12所示,本实施例中,预先定义了“上海大学”、“自动化”、“语音识别”、“计算机”、“美好明天”这几个关键词,并保存在一个文本文件中,将这个文本文件存放在手机存储卡中,通过点击“选择文件”按钮选择该文件,并点击“上传”按钮上传关键词到云端,点击“开始识别”按钮,弹出识别对话框启动关键词识别,当用户分别说出“上海大学”、“自动化”、“语音识别”、“计算机”、“美好明天”这几个关键词时,能够将这几个关键词都识别出来,并且为识别结果评定了最终的“置信度”,将对应的识别结果(图中3、5、7标识)显示在了文本编辑框内。而当说出其他未定义的词时,将无法识别该词。实现了关键词识别。
实施例五:
参见图13、14,为本发明中通信连接的部分,在客户端与服务器端建立通信连接后,参见图15、16、17、18、19、20、21,通过关键词识别实现对远端菌种挑选仪控制软件的操作,匹配到唯一命令。
如图15至图21所示,本实施例中,选取“启动”、“方式1”、“横向依次”、“拍照”、“筛选”、“接种”、“退出”几个命令,这几个命令为菌种挑选仪控制软件的配置页(如图6所示)内的操作命令,选取这几个命令来对软件进行实时地控制。
在实际操作中,由图中可见,通过关键词识别精准地控制了菌种挑选仪控制软件的操作,并且在远端执行命令成功后,将执行成功的信息反馈给了当前用户。
实施例六:
参见图22、23、24、25,本实施例通过说话人无关的语音识别实现对远端菌种挑选仪控制软件的操作,匹配到唯一命令。
本实施实例与实施例五基本相同,特别之处是本实施例比实施例五的方式更容易控制对远端软件中某些数值设定的操作,参见图22至图25,本施例中,选取“设置每针挑选数”、“从平皿挑取克隆总数”、“接种振动”、“加热时间”几个命令,这几个命令为菌种挑选仪控制软件的配置页(如图6所示)内的操作命令,选取这几个命令来对软件中的相关数值进行设定。
在实际操作中,由图中可见,实现了通过说话人无关的语音识别对菌种挑选仪控制软件中需要输入值的操作。在本实施例中,可以很灵活地改变菌种挑选仪控制软件中某些参数的数值,并且能够准确执行,在命令执行成功后,将执行成功的信息反馈给了当前用户。
实施例七:
参见图26,本实施例通过说话人无关的语音识别对远端菌种挑选仪控制软件的操作,匹配到多个命令。
本实施例中,图26展示了通过模糊匹配方式得到的匹配到多个命令的情况。如命令库中定义了“抓取停留时间”和“接种停留时间”这两个命令,为菌种挑选仪控制软件的配置页(图6所示)内的命令,如果只以“停留时间”为命令,则通过模糊匹配会匹配到多个相似命令,而无法执行该命令,并向用户反馈“匹配到多个命令,无法执行该命令”的信息。 这保证了命令在执行过程中,严格按照只能“唯一匹配”,才能执行命令的决策,有效地避免了在远端控制菌种挑选仪控制软件的过程中出现的误操作。
实施例八:
参见图27、28,本发明通过说话人无关的语音识别对远端菌种挑选仪控制软件的操作,无法匹配命令的情况。
本实施例中,图27和图28展示接收到命令后经过命令库匹配无法匹配到命令的情况。选取菌种挑选仪控制软件的筛选页(图8所示)内的几个命令:“人工确认”、“定位矩形”、“重置”,将菌种挑选仪控制软件的“配置”页(图6所示)作为当前的可视界面,当接收到“人工确认”、“定位矩形”、“重置”等在“配置”页中未定义的命令时,将无法匹配到命令,而无法执行该命令,并向用户反馈“无法识别的命令”的信息。这保证了命令在执行过程中不会执行到不想操作或不能操作的命令,保证了远端控制的安全性。
本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于上述的实施例。

Claims (7)

1.一种Android手机语音远程控制菌种挑选仪的方法,其特征在于具体操作步骤如下:
(1)语音输入:利用Android手机的麦克风实现语音的输入;
(2)语音处理:利用在线的语音处理引擎,将输入的语音信号处理为文字信息;
(3)命令发送:得利用TCP/IP协议进行网络通信,将识别出来的文字命令发送到PC端;
(4)命令匹配:在PC端预先设定命令库,经过一定的算法将接收到的命令与命令库中的命令进行匹配;
(5)命令处理:经过命令匹配后得到的结果作出相应的处理;
(6)命令处理反馈:将命令处理结果反馈给当前用户。
2.根据权利要求1所述的Android手机语音远程控制菌种挑选仪的方法,其特征在于:所述步骤(1)语音输入:用户通过手持一部Android手机,对着其麦克风说出想说的话,即输入语音信号。
3.根据权利要求1所述的Android手机语音远程控制菌种挑选仪的方法,其特征在于:所述步骤(2)语音处理:如果用户输入了一段有效的语音,则利用在线语音识别引擎进行处理,识别出文字信息;以两种不同风格的方式进行语音识别:1)说话人无关的语音识别;2)关键词识别;其中说话人无关的语音识别用于识别任何说话人的语音信号,并识别出相应的结果;关键词识别只能识别用户预定义的词或字,对于未定义的词或字无法进行识别。
4.根据权利要求1所述的Android手机语音远程控制菌种挑选仪的方法,其特征在于:所述步骤(3)命令发送:通过建立基于TCP/IP通信协议的网络通信的客户/服务器模型,实现客户端与服务器端进行数据通信;即是利用此方式将语音识别引擎识别出来的文字信息发送到PC端。
5.根据权利要求1所述的Android手机语音远程控制菌种挑选仪的方法,其特征在于:所述步骤(4)命令匹配:在PC端接收到Android手机端发送的数据后,即一个命令消息,将此命令与预先设定好的一个命令库进行完全匹配或模糊匹配,以最优的方式匹配到最终的结果。
6.根据权利要求1所述的Android手机语音远程控制菌种挑选仪的方法,其特征在于:所述步骤(5)命令处理:经过与命令库中命令匹配后,得出相应的可执行的命令消息结果,若只匹配到唯一一个命令,则执行该命令,并实现菌种挑选仪的运动;若匹配到模糊命令,即匹配到多个相似命令,或无法匹配到从Android手机端发送来的命令,则不作任何处理。
7.根据权利要求1所述的Android手机语音远程控制菌种挑选仪的方法,其特征在于:所述步骤(6)命令处理反馈:在经过与命令库匹配后,将得到的最终匹配的命令并执行相应的命令,将执行成功的消息反馈给当前Android手机用户;若未能执行相应的命令,则将相应的错误信息反馈给当前Android手机用户。
CN201410738598.4A 2014-12-08 2014-12-08 一种Android手机语音远程控制菌种挑选仪的方法 Pending CN104468572A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410738598.4A CN104468572A (zh) 2014-12-08 2014-12-08 一种Android手机语音远程控制菌种挑选仪的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410738598.4A CN104468572A (zh) 2014-12-08 2014-12-08 一种Android手机语音远程控制菌种挑选仪的方法

Publications (1)

Publication Number Publication Date
CN104468572A true CN104468572A (zh) 2015-03-25

Family

ID=52913944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410738598.4A Pending CN104468572A (zh) 2014-12-08 2014-12-08 一种Android手机语音远程控制菌种挑选仪的方法

Country Status (1)

Country Link
CN (1) CN104468572A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105702109A (zh) * 2016-03-29 2016-06-22 华南师范大学 物联网操作示教方法和系统
WO2017000763A1 (zh) * 2015-06-30 2017-01-05 芋头科技(杭州)有限公司 一种基于电话网络的远程语音控制系统
CN106448679A (zh) * 2016-09-30 2017-02-22 北京奇虎科技有限公司 实现语音控制应用的方法、装置和服务器
CN107153499A (zh) * 2016-03-04 2017-09-12 株式会社理光 交互式白板设备的语音控制
CN107845381A (zh) * 2017-10-27 2018-03-27 安徽硕威智能科技有限公司 一种机器人语义处理的方法及系统
CN108846362A (zh) * 2018-06-15 2018-11-20 温岭市志创网络科技有限公司 一种基于大数据云服务器的农作物病害识别系统及方法
CN110288989A (zh) * 2019-06-03 2019-09-27 安徽兴博远实信息科技有限公司 语音交互方法及系统
CN111052076A (zh) * 2017-09-07 2020-04-21 微软技术许可有限责任公司 用于计算机器的自动控制的动态命令生成
CN113495794A (zh) * 2020-04-03 2021-10-12 武汉斗鱼鱼乐网络科技有限公司 一种Android系统的模块桥接方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002001551A1 (en) * 2000-06-23 2002-01-03 Nmb (Usa), Inc. Input device for voice recognition and articulation using keystroke data.
CN103744411A (zh) * 2014-02-07 2014-04-23 上海金牌软件开发有限公司 一种有关ZigBee技术实现智能家居的控制方法
CN104049964A (zh) * 2013-03-16 2014-09-17 上海能感物联网有限公司 汉语语音近距或远程控制机电设备运行的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002001551A1 (en) * 2000-06-23 2002-01-03 Nmb (Usa), Inc. Input device for voice recognition and articulation using keystroke data.
CN104049964A (zh) * 2013-03-16 2014-09-17 上海能感物联网有限公司 汉语语音近距或远程控制机电设备运行的方法
CN103744411A (zh) * 2014-02-07 2014-04-23 上海金牌软件开发有限公司 一种有关ZigBee技术实现智能家居的控制方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017000763A1 (zh) * 2015-06-30 2017-01-05 芋头科技(杭州)有限公司 一种基于电话网络的远程语音控制系统
CN107153499A (zh) * 2016-03-04 2017-09-12 株式会社理光 交互式白板设备的语音控制
CN105702109A (zh) * 2016-03-29 2016-06-22 华南师范大学 物联网操作示教方法和系统
CN105702109B (zh) * 2016-03-29 2019-03-05 华南师范大学 物联网操作示教方法和系统
CN106448679A (zh) * 2016-09-30 2017-02-22 北京奇虎科技有限公司 实现语音控制应用的方法、装置和服务器
CN111052076A (zh) * 2017-09-07 2020-04-21 微软技术许可有限责任公司 用于计算机器的自动控制的动态命令生成
CN111052076B (zh) * 2017-09-07 2024-03-19 微软技术许可有限责任公司 用于计算机器的自动控制的动态命令生成
CN107845381A (zh) * 2017-10-27 2018-03-27 安徽硕威智能科技有限公司 一种机器人语义处理的方法及系统
CN108846362A (zh) * 2018-06-15 2018-11-20 温岭市志创网络科技有限公司 一种基于大数据云服务器的农作物病害识别系统及方法
CN110288989A (zh) * 2019-06-03 2019-09-27 安徽兴博远实信息科技有限公司 语音交互方法及系统
CN113495794A (zh) * 2020-04-03 2021-10-12 武汉斗鱼鱼乐网络科技有限公司 一种Android系统的模块桥接方法、装置、电子设备及存储介质
CN113495794B (zh) * 2020-04-03 2022-09-09 武汉斗鱼鱼乐网络科技有限公司 一种Android系统的模块桥接方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN104468572A (zh) 一种Android手机语音远程控制菌种挑选仪的方法
CN107566226B (zh) 一种控制智能家居的方法、装置和系统
CN102932695B (zh) 一种遥控方法、智能终端及智能遥控系统
US6931622B1 (en) System and method for creating a performance tool and a performance tool yield
CN111126781A (zh) Rpa业务流程的创建方法及系统
CN110932953A (zh) 智能家居控制方法、装置、计算机设备及存储介质
CN104376711B (zh) 一种快速配置移动终端红外遥控器的方法及装置
CN108683704A (zh) 一种Socket网络通信测试方法及其系统、存储介质
CN109040752A (zh) 用于智能电视的自动调试系统
CN103051694B (zh) 移动通信终端控制设备的方法与移动通信终端
CN113039498A (zh) 在工业系统网络中调试现场设备的方法
CN107122219A (zh) 安装文件的获取方法和装置
CN103888297A (zh) 交换机网络管理方法和系统
CN204989857U (zh) 一种基于先锋机器人的远程控制装置
CN113572822A (zh) 一种云终端模拟控制方法、装置、存储介质及电子设备
CN112988588B (zh) 客户端软件调试方法、装置、存储介质及电子设备
CN114398115A (zh) 可视化流水线生成方法和装置、存储介质及电子设备
CN109874034A (zh) 电视语音遥控方法、装置及终端设备
CN104063227B (zh) 一种基于物联网的指令学习方法
CN108762765A (zh) 基于contiki系统的开发板程序编译下载方法
CN110519092B (zh) 边缘网关、配置工具和软plc功能的脚本化实现方法
CN107291460A (zh) 电视终端及编译服务器代码控制方法和存储介质
TW202046685A (zh) 網狀網路之傳輸訊號之方法及其遙控控制系統
CN106528413A (zh) 一种应用程序的测试方法及装置
CN106648805A (zh) 一种智能装置、智能系统及智能安装应用的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150325