CN111292721A - 代码编写方法、装置及计算机设备 - Google Patents

代码编写方法、装置及计算机设备 Download PDF

Info

Publication number
CN111292721A
CN111292721A CN202010103453.2A CN202010103453A CN111292721A CN 111292721 A CN111292721 A CN 111292721A CN 202010103453 A CN202010103453 A CN 202010103453A CN 111292721 A CN111292721 A CN 111292721A
Authority
CN
China
Prior art keywords
code
code writing
instruction
voice signal
writing
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
CN202010103453.2A
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.)
OneConnect Smart Technology Co Ltd
OneConnect Financial Technology Co Ltd Shanghai
Original Assignee
OneConnect Financial Technology Co Ltd Shanghai
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 OneConnect Financial Technology Co Ltd Shanghai filed Critical OneConnect Financial Technology Co Ltd Shanghai
Priority to CN202010103453.2A priority Critical patent/CN111292721A/zh
Publication of CN111292721A publication Critical patent/CN111292721A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/225Feedback of the input speech

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种代码编写方法,包括以下步骤:获取输入的语音信号;对所述语音信号进行语义解析,以得到所述语音信号中包含的代码编写指令;判断所述代码编写指令的类型;及根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作。本发明实施例还提供了代码编写装置、计算机设备和计算机可存储介质。本发明实施例可以提高代码的编写效率。

Description

代码编写方法、装置及计算机设备
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种代码编写、装置及计算机设备。
背景技术
随着互联网技术的高速发展,手机、平板灯移动设备已成为人们日常工作生活的必需品。很多公司开发出大量的移动应用程序(APP)来满足大家的各类需求。各个公司的程序员在开发移动应用程序时,通常是通过键盘在代码编辑工具上敲出一行一行的代码。一个程序员可能一天敲出上万行的代码,然而,在这些庞大的代码中很多代码都是重复的,比如定义基本变量,创建新的函数,创建新的类,创建一个循环,数组遍历,等等,很多重复的代码需要敲很多遍,导致代码编写效率较低。
发明内容
有鉴于此,本发明实施例的目的是提供一种代码编写方法、装置、计算机设备及计算机可读存储介质,用于解决代码编写效率较低的问题。
为实现上述目的,本发明实施例提供了一种代码编写方法,包括:
获取输入的语音信号;
对所述语音信号进行语义解析,以得到所述语音信号包含的代码编写指令;
判断所述代码编写指令的类型;及
根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作。
可选地,所述对所述语音信号进行语义解析,以得到所述语音信号中包含的代码编写指令包括:
提取所述语音信号的声学特征;
将所述声学特征输入至语音识别模型中,以生成所述语音信号对应的文本信息;
提取所述文本信息中的关键词,并将所述关键词作为所述代码编写指令。
可选地,所述根据所述代码编写指令执行对应的代码编写操作包括:
在所述代码编写指令为插入代码块的指令时,根据所述代码编写指令中的待插入代码块的名称从预设的代码块模板库中查找所述待插入的代码块的模板;
获取所述模板,并将所述代码编写指令中包含的函数名称以及参数名称插入到所述模板的对应变量中,以生成所述待插入代码块;
获取所述代码编写指令中的代码插入位置,将所述待插入代码块插入至所述位置中。
可选地,所述根据所述代码编写指令执行对应的代码编写操作包括还包括:
在所述代码编写指令为插入单个代码的指令时,根据所述代码编写指令中的待插入代码的名称从预设的代码模板库中查找所述待插入的代码;
获取所述待插入的代码以及所述代码编写指令中的代码插入位置;
将所述待插入的代码插入到所述位置中。
可选地,所述将所述代码编写指令中包含的函数名称以及参数名称插入到所述模板的对应变量中,以生成所述待插入代码块包括:
将所述代码编写指令中包含的函数名称以及参数名称按照顺序对应替换掉所述模板中的对应变量。
可选地,所述提取所述文本信息中的关键词包括:
将所述文本信息与所述预设的关键词库进行匹配,以提取所述文本信息中的关键词。
可选地,所述代码编写方法还包括:
在所述代码编写指令为撤销指令时,撤销所述代码编写操作。
为实现上述目的,本发明实施例还提供了一种代码编写装置,包括:
获取模块,用于获取输入的语音信号;
解析模块,用于对所述语音信号进行语义解析,以得到所述语音信号中包含的代码编写指令;
判断模块,用于判断所述代码编写指令的类型;及
执行模块,用于根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作。
为实现上述目的,本发明实施例还提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的代码编写方法的步骤。
为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的代码编写方法的步骤。
本发明实施例提供的代码编写方法、装置、计算机设备及计算机可读存储介质,通过获取输入的语音信号;对所述语音信号进行语义解析,以得到所述语音信号中包含的代码编写指令;判断所述代码编写指令的类型;及根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作。在本发明实施例中,只需用户输入语音信号即可以完成代码的编写操作,尤其是还可以通过语音命令完成代码块的编写,提高了代码的编写效率。
附图说明
图1为本发明代码编写方法的一实施方式的步骤流程示意图。
图2为本发明一实施方式中对所述语音信号进行语义解析,以得到所述语音信号中包含的代码编写指令的步骤细化流程示意图。
图3为本发明一实施方式中根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作的步骤细化流程示意图。
图4为本发明一实施方式中根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作的步骤细化流程示意图。
图5为本发明代码编写方法的另一实施方式的步骤流程示意图。
图6为本发明一实施方式的代码编写装置的程序模块示意图。
图7为本发明一实施方式的计算机设备的硬件结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
以下结合附图与具体实施例进一步阐述本发明的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本发明的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。
参阅图1,示出了本发明实施例一之代码编写方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以代码编写装置(下文以“编写装置”简称)为执行主体进行示例性描述,所述编写装置可以应用于计算机设备中,所述计算机设备可以是移动电话、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)、服务器等具有数据传输功能的设备。具体如下:
步骤S10,获取输入的语音信号。
具体地,可以通过诸如麦克风、麦克风阵列等能够采集语音信号的音频输入设备来采集用户输入的语音信号,该音频输入设备可以为计算机设备的内置部件,也可以为计算机设备的外置部件。在通过音频输入设备采集到用户输入的语音信号之后,编写装置从该音频输入设备的输出端中获取该语音信号。
步骤S11,对所述语音信号进行语义解析,以得到所述语音信号中包含的代码编写指令。
具体地,在获取到用户输入的语音信号之后,对该语音信号进行语义解析,从而得到用户的意图,该意图即为所述代码编写指令。在本例中,该代码编写指令可以为具体的函数插入指令,创建新的类的指令,创建一个循环的指令,也可以为简单的代码编写指令,比如,“在第121行插入一个命名为new Post的箭头函数,三个入参,分别为v,y,w”,“在xxx行最后加一个分号”或是,“在地xxx行第yyy列执行换行操作”等等。
在一实施方式中,参照图2,所述对所述语音信号进行语义解析,以得到所述语音信号中包含的代码编写指令包括:
步骤S20,提取所述语音信号的声学特征。
具体地,由于语音信号是模拟信号,因此需要将模拟的语音信号进行处理,将其数字化,提取出语音信号的声学特征。在本发明实施例中,可使用如梅尔频率倒谱系数MFCC、线性预测倒谱系数LPCC、多媒体内容描述接口MPEG7等方法来提取声学特征。
步骤S21,将所述声学特征输入至语音识别模型中,以生成所述语音信号对应的文本信息。
具体地,在提取到声学特征之后,将该声学特征输入至语音识别模型中。该语音识别模型可以对声学特征进行解码,从而将该声学特征转换为对应的文本信息,其中,该语音识别模型为现有的语音转文本的模型,比如,可以采用百度公司开发的语音识别模型,也可以采用科大讯飞公司开发的语音识别模型,在本实施例中不作限定。
示例性的,假设用户说“在第121行插入一个命名为new Post的箭头函数,三个入参,分别为v,y,w”,则在提取到该用户输入的语音信号的声学特征,并将该声学特征输入至语义解析模型中,通过该语义解析模型可以解码出如下文本信息:在第121行插入一个命名为new Post的箭头函数,三个入参,分别为v,y,w。
步骤S22,提取所述文本信息中的关键词,并将所述关键词作为所述代码编写指令。
具体地,在将语音信号转换为文本信息之后,即可以对该文本信息中的关键词进行提取。其中,所述关键词是预先定义好的,并存储在预设的关键词库中的。所述关键词可以包括代码块或代码的名称、函数名称以及参数名称、插入位置信息、单个代码的名称等。
在一实施方式中,在提取所述文本信息中的关键词时,可以通过将该文本信息中的各个词语与预设的关键词库中的关键词进行查找匹配,以提取所述文本信息中的关键词。其中,当从预设的关键词库中查找到与该文本信息相匹配的词语时,则表明该文本信息中的词语为关键词,在查找完该文本信息中的所有词语之后,将所有查找到的关键词作为所述代码编写指令。
例如,文本信息为:“在第121行插入一个命名为new Post的箭头函数,三个入参,分别为v,y,w”,提取出关键词为:“第121行”、“插入”、“命名”“new Post”、“箭头函数”、“三个入参”、“v,y,w”。在提取出上述关键词之后,根据该关键词中的“箭头函数”即可以确定待编写的函数;根据该关键词中的“命名”、“new Post”、三个入参”、“v,y,w”即可以确定待编写函数的名称以及函数中的入参数量以及各个入参的参数名称;根据该关键词中的“第121行”、“插入”即可以确定待编写函数的位置。
由于提取到的关键词中已经包括用户完整的代码编写意图,因而,根据该关键词即可完成代码的编写操作。
步骤S12,判断所述代码编写指令的类型。
具体地,代码编写指令的类型包括插入代码块的指令以及插入单个代码的指令。在得到代码编写指令之后,可以对代码编写指令的类型进行判断,以便根据判定出的类型执行对应的代码编写操作。
步骤S13,根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作。
具体地,不同类型的代码编写指令类型对应的代码编写操作不同,在得到所述代码编写指令的类型之后,可以根据预设的代码编写指令与该代码编写指令对应的代码映射表来找到该代码编写指令对应的代码。
在找到该代码编写指令对应的代码之后,然后可以根据该代码编写指令中的代码插入位置信息,将该代码插入到该位置当中,从而完成代码的编写。
在一实施方式中,参照图3,所述根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作包括:
步骤S30,在所述代码编写指令为插入代码块的指令时,根据所述代码编写指令中的待插入代码块的名称从预设的代码块模板库中查找所述待插入的代码块的模板。
具体地,在获取到代码编写指令之后,可以进一步判断该代码编写指令是否为插入代码块的指令。其中,该代码块由多段代码组成,该插入代码块的指令包括但不限于插入新的函数,创建新的类,创建一个循环的指令。
在该代码插入指令为插入代码块指令时,进一步可以根据该代码编写指令中的待插入代码块的名称从预设的代码块模板库中找到与该代码块名称相匹配的模板。其中,代码块模板库中预先存储有多个代码块的模板,并且每个代码块的模板与其对应的代码块名称进行关联存储,以便通过代码块的名称可以查找到该代码块。所述模板可以为一个通用的创建某个函数的代码,或者可以为一个通用的创建可以通过新的类的代码,或者可以为一个通用的创建一个循环的代码。
步骤S31,获取所述模板,并将所述代码编写指令中包含的函数名称以及参数名称插入到所述模板的对应变量中,以生成所述待插入代码块。
具体地,在获取到模板之后,获取代码编写指令中包含的函数名称以及参数名称,然后将该获取到的函数名称以及参数名称插入到模板的对应变量中,从而生成待插入的代码块。其中,该模板中的包括变量为代表函数名称的变量,代表参数名称的变量等。
示例性的,假设该代码编写指令为“在第121行插入一个命名为new Post的箭头函数,三个入参,分别为v,y,w”,则可以根据代码块的名称“箭头函数”从代码模板库中找到该箭头函数的模板,示例性的,该箭头函数的模板为:
let函数名=(参数1,参数2,参数3)=>{
return返回值;
};
在获取到该箭头函数的模板之后,即可以将该箭头函数的函数名称“new Post”、参数名“v,y,w”分别插入到该箭头函数模板的对应变量中,得到最终的箭头函数。该最终的箭头函数,即所述待插入的代码块如下所示:
let newPost=(v,y,w)=>{
return v;
};
在一实施方式中,在将代码编写指令中包含的函数名称以及参数名称插入到模板的对应变量时,可以将所述代码编写指令中包含的函数名称以及参数名称按照顺序对应替换掉所述模板中的对应变量,即在将函数名称以及参数名称插入到该箭头函数模板的对应变量中时,按照用户语音中的函数名称以及参数名的先后顺序对应将该函数名称以及参数名插入到对应的变量中,即将函数名称““new Post””替换掉箭头函数模板中的第一个变量,将第一个参数名“v”替换掉箭头函数模板中的第二个变量,同理,将第二个参数名“y”替换掉箭头函数模板中的第三个变量,将将第三个参数名“w”替换掉箭头函数模板中的第四个变量。
步骤S32,获取所述代码编写指令中的代码插入位置,将所述待插入代码块插入至所述位置中。
具体地,在完成模板中的变量替换后,即可以得到该待插入的代码块,然后可以获取该代码编写指令中的代码插入位置,在本实施例中,该插入位置为第121行,则编辑器可以定位到121行,然后将该箭头函数插入到第121行,从而完成代码的编写操作。
在另一实施方式中,参照图4,所述根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作还包括:
步骤S40,在所述代码编写指令为插入单个代码的指令时,根据所述代码编写指令中的待插入代码的名称从预设的代码模板库中查找所述待插入的代码;
具体地,在获取到代码编写指令之后,可以进一步判断该代码编写指令是否为插入单个代码的指令。所述插入单个代码的指令为仅插入一个字符串的代码的指令,例如,“在xxx行最后插入一个分号”或是,“在地xxx行第yyy列插入一个换行符”等等的指令。
在该代码插入指令为插入单个代码的指令时,进一步可以根据该代码编写指令中的待插入代码的名称从预设的代码模板库中找到与该代码名称相匹配的代码。其中,代码模板库中预先存储有多个代码,并且每个代码与其对应的代码名称进行关联存储,以便通过代码的名称可以查找到该代码。
步骤S41,获取所述待插入的代码以及所述代码编写指令中的代码插入位置。
具体地,在查找到待插入的代码之后,即可以获取该待插入的代码。同时,也可以从该代码编写指令中获取该代码的插入位置。
步骤S42,将所述待插入的代码插入到所述位置中。
具体地,在获取到待插入的代码以及代码插入位置之后,即可以将该代码插入到对应的位置当中。
示例性的,假设该代码编写指令为“在10行最后插入一个分号”,则可以根据该待插入代码的名称“分号”从预设的代码库中找到该待插入的代码“;”。在找打该代码“;”之后,获取插入位置,在本实施例中该插入位置为第10行末尾,则编辑器可以定位到10行末尾,然后将该“;”插入到第10行末尾,从而完成代码的编写操作。
本发明本实施例所提出的代码编写方法,通过获取输入的语音信号;对所述语音信号进行语义解析,以得到所述语音信号中包含的代码编写指令;判断所述代码编写指令的类型;及根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作。在本发明实施例中,只需用户输入语音信号即可以完成代码的编写操作,尤其是还可以通过语音命令完成代码块的编写,提高了代码的编写效率。
参阅图5,是本发明代码编写方法另一实施例的步骤流程示意图。在本实施例中,根据不同的需求,图5所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。下面同样以代码编写装置(下文以“编写装置”简称)为执行主体进行示例性描述。具体如下:
步骤S50,获取输入的语音信号;
步骤S51,对所述语音信号进行语义解析,以得到所述语音信号中包含的代码编写指令。
步骤S52,根据所述代码编写指令执行对应的代码编写操作。
具体地,上述步骤S50-S52与步骤S10-S12类似,在本实施方式中不再赘述。
步骤S53,在所述代码编写指令为撤销指令时,撤销所述代码编写操作。
具体地,在执行完对应的代码编写操作之后,若用户发现执行了一条错误的指令,用户可以发出‘撤销刚刚的输入’的语音指令,在接收到该语音指令之后,对该语音指令进行语义解析,若发现该语义结果为撤销指令时,则可以调用工具的“撤销”命令,撤销刚刚插入的代码块或者插入的单个代码。
本发明本实施例所提出的代码编写方法,通过在用户发现执行的代码编写操作错误时,可以进一步通过语音指令实现对插入的代码块或者单个代码的撤销,从而可以方便快速的删除掉错误的代码。
请参阅图6,示出了本发明实施例之代码编写装置600(以下简称为“编写装置”600)的程序模块示意图。所述编写装置600可以应用于计算机设备中,所述计算机设备可以是移动电话、平板个人计算机(tablet personal computer)、膝上型计算机(laptopcomputer)、服务器等具有数据传输功能的设备。在本实施例中,编写装置600可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述代码编写方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述代码编写方法在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
获取模块601,用于获取输入的语音信号。
具体地,可以通过诸如麦克风、麦克风阵列等能够采集语音信号的音频输入设备来采集用户输入的语音信号,该音频输入设备可以为计算机设备的内置部件,也可以为计算机设备的外置部件。在通过音频输入设备采集到用户输入的语音信号之后,编写装置从该音频输入设备的输出端中获取该语音信号。
解析模块602,用于对所述语音信号进行语义解析,以得到所述语音信号中包含的代码编写指令。
具体地,在获取到用户输入的语音信号之后,对该语音信号进行语义解析,从而得到用户的意图,该意图即为所述代码编写指令。在本例中,该代码编写指令可以为具体的函数插入指令,创建新的类的指令,创建一个循环的指令,也可以为简单的代码编写指令,比如,“在第121行插入一个命名为new Post的箭头函数,三个入参,分别为v,y,w”,“在xxx行最后加一个分号”或是,“在地xxx行第yyy列执行换行操作”等等。
在一实施方式中,所述解析模块602,还用于提取所述语音信号的声学特征。
具体地,由于语音信号是模拟信号,因此需要将模拟的语音信号进行处理,将其数字化,提取出语音信号的声学特征。在本发明实施例中,可使用如梅尔频率倒谱系数MFCC、线性预测倒谱系数LPCC、多媒体内容描述接口MPEG7等方法来提取声学特征。
所述解析模块602,还用于将所述声学特征输入至语音识别模型中,以生成所述语音信号对应的文本信息。
具体地,在提取到声学特征之后,将该声学特征输入至语音识别模型中。该语音识别模型可以对声学特征进行解码,从而将该声学特征转换为对应的文本信息,其中,该语音识别模型为现有的语音转文本的模型,比如,可以采用百度公司开发的语音识别模型,也可以采用科大讯飞公司开发的语音识别模型,在本实施例中不作限定。
示例性的,假设用户说“在第121行插入一个命名为new Post的箭头函数,三个入参,分别为v,y,w”,则在提取到该用户输入的语音信号的声学特征,并将该声学特征输入至语义解析模型中,通过该语义解析模型可以解码出如下文本信息:在第121行插入一个命名为new Post的箭头函数,三个入参,分别为v,y,w。
所述解析模块602,还用于提取所述文本信息中的关键词,并将所述关键词作为所述代码编写指令。
具体地,在将语音信号转换为文本信息之后,即可以对该文本信息中的关键词进行提取。其中,所述关键词是预先定义好的,并存储在预设的关键词库中的。所述关键词可以包括代码块或代码的名称、函数名称以及参数名称、插入位置信息、单个代码的名称等。
在一实施方式中,在提取所述文本信息中的关键词时,可以通过将该文本信息中的各个词语与预设的关键词库中的关键词进行查找匹配,以提取所述文本信息中的关键词。其中,当从预设的关键词库中查找到与该文本信息相匹配的词语时,则表明该文本信息中的词语为关键词,在查找完该文本信息中的所有词语之后,将所有查找到的关键词作为所述代码编写指令。
例如,文本信息为:“在第121行插入一个命名为new Post的箭头函数,三个入参,分别为v,y,w”,提取出关键词为:“第121行”、“插入”、“命名”“new Post”、“箭头函数”、“三个入参”、“v,y,w”。在提取出上述关键词之后,根据该关键词中的“箭头函数”即可以确定待编写的函数;根据该关键词中的“命名”、“new Post”、三个入参”、“v,y,w”即可以确定待编写函数的名称以及函数中的入参数量以及各个入参的参数名称;根据该关键词中的“第121行”、“插入”即可以确定待编写函数的位置。
由于提取到的关键词中已经包括用户完整的代码编写意图,因而,根据该关键词即可完成代码的编写操作。
判断模块603,用于判断所述代码编写指令的类型。
具体地,代码编写指令的类型包括插入代码块的指令以及插入单个代码的指令。在得到代码编写指令之后,可以对代码编写指令的类型进行判断,以便根据判定出的类型执行对应的代码编写操作。
执行模块604,用于根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作。
具体地,不同类型的代码编写指令类型对应的代码编写操作不同,在得到所述代码编写指令的类型之后,可以根据预设的代码编写指令与该代码编写指令对应的代码映射表来找到该代码编写指令对应的代码。
在一实施方式中,所述执行模块604,还用于在所述代码编写指令为插入代码块的指令时,根据所述代码编写指令中的待插入代码块的名称从预设的代码块模板库中查找所述待插入的代码块的模板。
具体地,在获取到代码编写指令之后,可以进一步判断该代码编写指令是否为插入代码块的指令。其中,该代码块由多段代码组成,该插入代码块的指令包括但不限于插入新的函数,创建新的类,创建一个循环的指令。
在该代码插入指令为插入代码块指令时,进一步可以根据该代码编写指令中的待插入代码块的名称从预设的代码块模板库中找到与该代码块名称相匹配的模板。其中,代码块模板库中预先存储有多个代码块的模板,并且每个代码块的模板与其对应的代码块名称进行关联存储,以便通过代码块的名称可以查找到该代码块。所述模板可以为一个通用的创建某个函数的代码,或者可以为一个通用的创建可以通过新的类的代码,或者可以为一个通用的创建一个循环的代码。
所述执行模块604,还用于获取所述模板,并将所述代码编写指令中包含的函数名称以及参数名称插入到所述模板的对应变量中,以生成所述待插入代码块。
具体地,在获取到模板之后,获取代码编写指令中包含的函数名称以及参数名称,然后将该获取到的函数名称以及参数名称插入到模板的对应变量中,从而生成待插入的代码块。其中,该模板中的包括变量为代表函数名称的变量,代表参数名称的变量等。
示例性的,假设该代码编写指令为“在第121行插入一个命名为new Post的箭头函数,三个入参,分别为v,y,w”,则可以根据代码块的名称“箭头函数”从代码模板库中找到该箭头函数的模板,示例性的,该箭头函数的模板为:
let函数名=(参数1,参数2,参数3)=>{
return返回值;
};
在获取到该箭头函数的模板之后,即可以将该箭头函数的函数名称“new Post”、参数名“v,y,w”分别插入到该箭头函数模板的对应变量中,得到最终的箭头函数。该最终的箭头函数,即所述待插入的代码块如下所示:
let newPost=(v,y,w)=>{
return v;
};
在一实施方式中,在将代码编写指令中包含的函数名称以及参数名称插入到模板的对应变量时,可以将所述代码编写指令中包含的函数名称以及参数名称按照顺序对应替换掉所述模板中的对应变量,即在将函数名称以及参数名称插入到该箭头函数模板的对应变量中时,按照用户语音中的函数名称以及参数名的先后顺序对应将该函数名称以及参数名插入到对应的变量中,即将函数名称““new Post””替换掉箭头函数模板中的第一个变量,将第一个参数名“v”替换掉箭头函数模板中的第二个变量,同理,将第二个参数名“y”替换掉箭头函数模板中的第三个变量,将将第三个参数名“w”替换掉箭头函数模板中的第四个变量。
所述执行模块604,还用于获取所述代码编写指令中的代码插入位置,将所述待插入代码块插入至所述位置中。
具体地,在完成模板中的变量替换后,即可以得到该待插入的代码块,然后可以获取该代码编写指令中的代码插入位置,在本实施例中,该插入位置为第121行,则编辑器可以定位到121行,然后将该箭头函数插入到第121行,从而完成代码的编写操作。
在另一实施方式中,所述执行模块604,还用于在所述代码编写指令为插入单个代码的指令时,根据所述代码编写指令中的待插入代码的名称从预设的代码模板库中查找所述待插入的代码;
具体地,在获取到代码编写指令之后,可以进一步判断该代码编写指令是否为插入单个代码的指令。所述插入单个代码的指令为仅插入一个字符串的代码的指令,例如,“在xxx行最后插入一个分号”或是,“在地xxx行第yyy列插入一个换行符”等等的指令。
在该代码插入指令为插入单个代码的指令时,进一步可以根据该代码编写指令中的待插入代码的名称从预设的代码模板库中找到与该代码名称相匹配的代码。其中,代码模板库中预先存储有多个代码,并且每个代码与其对应的代码名称进行关联存储,以便通过代码的名称可以查找到该代码。
所述执行模块604,还用于获取所述待插入的代码以及所述代码编写指令中的代码插入位置。
具体地,在查找到待插入的代码之后,即可以获取该待插入的代码。同时,也可以从该代码编写指令中获取该代码的插入位置。
所述执行模块604,还用于将所述待插入的代码插入到所述位置中。
具体地,在获取到待插入的代码以及代码插入位置之后,即可以将该代码插入到对应的位置当中。
示例性的,假设该代码编写指令为“在10行最后插入一个分号”,则可以根据该待插入代码的名称“分号”从预设的代码库中找到该待插入的代码“;”。在找打该代码“;”之后,获取插入位置,在本实施例中该插入位置为第10行末尾,则编辑器可以定位到10行末尾,然后将该“;”插入到第10行末尾,从而完成代码的编写操作。
本发明本实施例所提出的代码编写方法,通过获取输入的语音信号;对所述语音信号进行语义解析,以得到所述语音信号中包含的代码编写指令;判断所述代码编写指令的类型;及根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作。在本发明实施例中,只需用户输入语音信号即可以完成代码的编写操作,尤其是还可以通过语音命令完成代码块的编写,提高了代码的编写效率。
在本发明另一实施方式中,所述编写装置600还包括:
撤销模块,用于在所述代码编写指令为撤销指令时,撤销所述代码编写操作。
具体地,在执行完对应的代码编写操作之后,若用户发现执行了一条错误的指令,用户可以发出‘撤销刚刚的输入’的语音指令,在接收到该语音指令之后,对该语音指令进行语义解析,若发现该语义结果为撤销指令时,则可以调用工具的“撤销”命令,撤销刚刚插入的代码块或者插入的单个代码。
本发明本实施例所提出的代码编写方法,通过在用户发现执行的代码编写操作错误时,可以进一步通过语音指令实现对插入的代码块或者单个代码的撤销,从而可以方便快速的删除掉错误的代码。
参阅图7,是本发明实施例之计算机设备700的硬件架构示意图。在本实施例中,所述计算机设备700是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。如图所示,所述计算机设备700至少包括,但不限于,可通过装置总线相互通信连接存储器701、处理器702、网络接口703。其中:
本实施例中,存储器701至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器701可以是计算机设备700的内部存储单元,例如所述计算机设备700的硬盘或内存。在另一些实施例中,存储器701也可以是计算机设备700的外部存储设备,例如所述计算机设备700上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器701还可以既包括计算机设备700的内部存储单元也包括其外部存储设备。本实施例中,存储器701通常用于存储安装于计算机设备700的操作装置和各类应用软件,例如代码编写装置600的程序代码等。此外,存储器701还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器702在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。所述处理器702通常用于控制计算机设备700的总体操作。本实施例中,处理器702用于运行存储器701中存储的程序代码或者处理数据,例如运行代码编写装置600,以实现上述各个实施例中的代码编写方法。
所述网络接口703可包括无线网络接口或有线网络接口,所述网络接口703通常用于在所述计算机设备700与其他电子装置之间建立通信连接。例如,所述网络接口703用于通过网络将所述计算机设备700与外部终端相连,在所述计算机设备700与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯装置(Global System of Mobile communication,GSM)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图7仅示出了具有部件701-703的计算机设备700,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器701中的所述代码编写装置600还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器701中,并由一个或多个处理器(本实施例为处理器702)所执行,以完成本发明之代码编写方法或者代码编写方法。
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储代码编写装置600,以被处理器执行时实现本发明之代码编写方法或者代码编写方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种代码编写方法,其特征在于,包括:
获取输入的语音信号;
对所述语音信号进行语义解析,以得到所述语音信号包含的代码编写指令;
判断所述代码编写指令的类型;及
根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作。
2.如权利要求1所述的代码编写方法,其特征在于,所述对所述语音信号进行语义解析,以得到所述语音信号中包含的代码编写指令包括:
提取所述语音信号的声学特征;
将所述声学特征输入至语音识别模型中,以生成所述语音信号对应的文本信息;
提取所述文本信息中的关键词,并将所述关键词作为所述代码编写指令。
3.如权利要求1所述的代码编写方法,其特征在于,所述根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作包括:
在所述代码编写指令为插入代码块的指令时,根据所述代码编写指令中的待插入代码块的名称从预设的代码块模板库中查找所述待插入的代码块的模板;
获取所述模板,并将所述代码编写指令中包含的函数名称以及参数名称插入到所述模板的对应变量中,以生成所述待插入代码块;
获取所述代码编写指令中的代码插入位置,将所述待插入代码块插入至所述位置中。
4.如权利要求3所述的代码编写方法,其特征在于,所述根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作包括还包括:
在所述代码编写指令为插入单个代码的指令时,根据所述代码编写指令中的待插入代码的名称从预设的代码模板库中查找所述待插入的代码;
获取所述待插入的代码以及所述代码编写指令中的代码插入位置;
将所述待插入的代码插入到所述位置中。
5.如权利要求3所述的代码编写方法,其特征在于,所述将所述代码编写指令中包含的函数名称以及参数名称插入到所述模板的对应变量中,以生成所述待插入代码块包括:
将所述代码编写指令中包含的函数名称以及参数名称按照顺序对应替换掉所述模板中的对应变量。
6.如权利要求2所述的代码编写方法,其特征在于,所述提取所述文本信息中的关键词包括:
将所述文本信息与所述预设的关键词库进行匹配,以提取所述文本信息中的关键词。
7.如权利要求1至5任一项所述的代码编写方法,其特征在于,所述代码编写方法还包括:
在所述代码编写指令为撤销指令时,撤销所述代码编写操作。
8.一种代码编写装置,其特征在于,包括:
获取模块,用于获取输入的语音信号;
解析模块,用于对所述语音信号进行语义解析,以得到所述语音信号中包含的代码编写指令;
判断模块,用于判断所述代码编写指令的类型;及
执行模块,用于根据判定出的代码编写指令类型执行与所述代码编写类型相对应的代码编写操作。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的代码编写方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1-7中任一项所述的代码编写方法的步骤。
CN202010103453.2A 2020-02-20 2020-02-20 代码编写方法、装置及计算机设备 Pending CN111292721A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010103453.2A CN111292721A (zh) 2020-02-20 2020-02-20 代码编写方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010103453.2A CN111292721A (zh) 2020-02-20 2020-02-20 代码编写方法、装置及计算机设备

Publications (1)

Publication Number Publication Date
CN111292721A true CN111292721A (zh) 2020-06-16

Family

ID=71023212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010103453.2A Pending CN111292721A (zh) 2020-02-20 2020-02-20 代码编写方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN111292721A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238752A (zh) * 2021-05-17 2021-08-10 北京达佳互联信息技术有限公司 代码生成方法、装置、电子设备及存储介质
CN116028031A (zh) * 2023-03-29 2023-04-28 中科航迈数控软件(深圳)有限公司 代码自动生成模型训练方法、系统及存储介质
CN116088825A (zh) * 2023-04-03 2023-05-09 广东省信息工程有限公司 一种脚本生成方法、可视化编辑器以及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2082820A (en) * 1980-08-20 1982-03-10 Neff Gregor Nicholas Devices, Systems and Methods for Converting Speech into Corresponding Written Form
WO2012094422A2 (en) * 2011-01-05 2012-07-12 Health Fidelity, Inc. A voice based system and method for data input
CN105117227A (zh) * 2015-08-24 2015-12-02 小米科技有限责任公司 自动生成代码的方法及装置
US20160357519A1 (en) * 2015-06-05 2016-12-08 Microsoft Technology Licensing, Llc Natural Language Engine for Coding and Debugging
CN109446218A (zh) * 2018-09-25 2019-03-08 中国平安人寿保险股份有限公司 Sql语句生成方法、装置及计算机可读存储介质
CN109817210A (zh) * 2019-02-12 2019-05-28 百度在线网络技术(北京)有限公司 语音写作方法、装置、终端和存储介质
KR20190061488A (ko) * 2017-11-28 2019-06-05 윤종식 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법
CN110070859A (zh) * 2018-01-23 2019-07-30 阿里巴巴集团控股有限公司 一种语音识别方法及装置
CN110211453A (zh) * 2019-05-26 2019-09-06 韶关市启之信息技术有限公司 一种结合环境隐私辅助远程结对编程的方法
US20200026488A1 (en) * 2017-02-14 2020-01-23 Jong Sik Yoon Coding system and coding method using voice recognition

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2082820A (en) * 1980-08-20 1982-03-10 Neff Gregor Nicholas Devices, Systems and Methods for Converting Speech into Corresponding Written Form
WO2012094422A2 (en) * 2011-01-05 2012-07-12 Health Fidelity, Inc. A voice based system and method for data input
US20160357519A1 (en) * 2015-06-05 2016-12-08 Microsoft Technology Licensing, Llc Natural Language Engine for Coding and Debugging
CN105117227A (zh) * 2015-08-24 2015-12-02 小米科技有限责任公司 自动生成代码的方法及装置
US20200026488A1 (en) * 2017-02-14 2020-01-23 Jong Sik Yoon Coding system and coding method using voice recognition
KR20190061488A (ko) * 2017-11-28 2019-06-05 윤종식 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법
CN110070859A (zh) * 2018-01-23 2019-07-30 阿里巴巴集团控股有限公司 一种语音识别方法及装置
CN109446218A (zh) * 2018-09-25 2019-03-08 中国平安人寿保险股份有限公司 Sql语句生成方法、装置及计算机可读存储介质
CN109817210A (zh) * 2019-02-12 2019-05-28 百度在线网络技术(北京)有限公司 语音写作方法、装置、终端和存储介质
CN110211453A (zh) * 2019-05-26 2019-09-06 韶关市启之信息技术有限公司 一种结合环境隐私辅助远程结对编程的方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238752A (zh) * 2021-05-17 2021-08-10 北京达佳互联信息技术有限公司 代码生成方法、装置、电子设备及存储介质
CN116028031A (zh) * 2023-03-29 2023-04-28 中科航迈数控软件(深圳)有限公司 代码自动生成模型训练方法、系统及存储介质
CN116088825A (zh) * 2023-04-03 2023-05-09 广东省信息工程有限公司 一种脚本生成方法、可视化编辑器以及存储介质

Similar Documents

Publication Publication Date Title
CN109408526B (zh) Sql语句生成方法、装置、计算机设备及存储介质
Reddy et al. Speech to text conversion using android platform
CN111292721A (zh) 代码编写方法、装置及计算机设备
CN107480162B (zh) 基于人工智能的搜索方法、装置、设备及计算机可读存储介质
CN106570180B (zh) 基于人工智能的语音搜索方法及装置
CN111144128B (zh) 语义解析方法和装置
US8086444B2 (en) Method and system for grammar relaxation
CN110244941B (zh) 任务开发方法、装置、电子设备及计算机可读存储介质
CN113220782A (zh) 多元测试数据源生成方法、装置、设备及介质
KR20130133872A (ko) 자동화된 대화 지원
CN116860949B (zh) 问答处理方法、装置、系统、计算设备及计算机存储介质
CN110675863A (zh) 语音语料生成方法及装置、语音识别方法及装置
Gómez et al. CRUDyLeaf: a DSL for generating spring boot REST APIs from entity CRUD operations
CN113961196A (zh) 一种自动生成代码方法、装置、设备及可读存储介质
WO2019169722A1 (zh) 快捷键识别方法、装置、设备以及计算机可读存储介质
US20070055492A1 (en) Configurable grammar templates
CN112597034A (zh) 测试用例的生成方法、装置及计算机可读存储介质
CN112270197A (zh) 一种基于文字段落的动画草稿生成方法与装置
CN116860957A (zh) 一种基于大语言模型的企业筛选方法、装置及介质
Allauzen et al. A general weighted grammar library
CN114661298A (zh) 公共方法自动生成方法、系统、设备及介质
CN114626388A (zh) 意图识别方法、装置、电子设备及存储介质
CN111898762B (zh) 深度学习模型目录创建
CN114187388A (zh) 动画制作方法、装置、设备及存储介质
CN109509467B (zh) 代码生成方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination