基于讯飞语音识别技术开发提高学生口语的Java程序

===========================================================================

基于讯飞语音识别技术开发提高学生口语的Java程序

cemike@126.com 20180531

===========================================================================

 

* 程序介绍

人工智能飞速发展的今天,教育管理机构、学校及教师已经不能只满足于“人肉机器”式的教学。我们应该充分利用现有的科技成果服务于我们的教学。

这里我们介绍利用讯飞语音的人工智能语音识别平台(免费结合强大且免费的Java编程语言开发的具有自主知识产权可高度定制的程序来提高学生的口语水平

程序展示了两个小功能

A. WordInMyMind猜单词游戏

类似于做单选选择题,但是必须通过语音接口来操作,也就是学生必须读出单词来做出选择。

B. 英文句子朗读过关游戏

将任意文本(如人教版高中英语选修8 Unit 3课文或任意一段)分析为句子。学生朗读句子。朗读正确的单词绿色标注,错误(识别)单词红色标注。比较原句与学生朗读句子相似度0~1.0),相似度大于等于0.8通过标准(同时也是此句所得分数)。通过进入下一句,不通过继续朗读。所有句子朗读结束显示结果报告。包括原句、学生所有尝试读出的句子(用|分隔得分等。

 

其中功能A以游戏的方式,也可以给出单词逐一朗读过关的方式;功能B句子来源也可以来自数据库;二者均已实现,未在本文展示。

功能A脱胎Hangman Game (参考https://baike.baidu.com/item/Hangman/9308312?fr=aladdin 游戏还可以有其他玩法,完全取决于于编程者的创意。功能B类似于国内某高考口语软件提供的功能但是软件不是免费的,且价格不菲(上百元只能使用一个周期),而我们的软件是完全免费的。

我们程序展示的两个小功能已经达到完全用的程度。界面和操作都比较原始,目前是基于桌面电脑(Desktop,也可以开发手机应用(AndroidiOS。单纯展示了我们掌握的技术只要有志者继续完善和深入开发,一定可以达到商业级教学软件的程度。

欢迎通过以下方式联系开发者:cemike@126.com

 


* 程序界面

A. WordInMyMind猜单词游戏

1. 选择要测试的单元点击Game按钮

 

2. 每组显示三个单词,初始状态均为[]学生通过读出(语音)单词来猜计算机选中的目标单词

 

 

 

 

3. 如果讯飞语音识别出给定的三个单词之一,但不是目标单词,会在单词后方括号标注[猜错]

 

 

 

 

4. 如果讯飞语音识别出给定的三个单词之一,而且是目标单词,会在单词后方括号标注[]进入下一个单词猜测。

 

 

5. 每次猜对一词得一分,如果同一词三次猜错本轮不得分进入下一

 

 

6. 最后显示未猜对的此表。

 

 

 

 

B. 英文句子朗读过关游戏

1.打开要朗读的文本文件如人教版高中英语选修8 Unit 3课文第一段。

 

 

2. 将文本分析为句子,可以选择拆分依据(句号,逗号,分号等)。选中要朗读的句子。

 

 

 

3. 单击Oral按钮 “测试列表来源” 选择 “资源编辑器” 

 

 

 

4. 朗读界面上部显示要读的句子。下部显示讯飞语音识别出来学生朗读句子。

 

 

 

5. 朗读正确的单词绿色标注,错误(识别)单词红色标注。

 

 

 

6. 将原句与朗读句子比较相似度0~1.0),相似度大于等于0.8通过标准(同时也是此句所得分数)。通过进入下一句,不通过继续朗读。

 

 

 

 

7. 所有句子朗读结束显示结果报告。包括原句、学生所有尝试读出的句子(用|分隔得分等。

 

 

 

 

 

 

 

 

 

* 技术要点

- 讯飞开放平台Java SDK http://www.xfyun.cn/sdk/dispatcher 

- 语音合成技术

- Java 及Android编程

- 高考考纲单词数据库

 

* 开发日志

version 9.4 2018-05-31

--------------------------------------------

* 口语训练界面增加WordInMyMind猜单词游戏界面:“单词学习”界面》Game按钮。

 * 每组n个单词,通过语音输入,猜出每组目标单词是哪一个;每组n-1次(包含)以内猜出单词为成功得1分;否则不得分。

 * 借助讯飞语音识别功能,将用户口头输入转换成文本,然后与给出单词或句子比对,判断发音是否准确。参考:

 org.cj.myword.ui.WordInMyMindPane

 org.cj.myword.ui.LearningPane.doOralGame(final ArrayList<Word>, final int)

 .createWordInMyMindView()

 

version 9.2 2018-04-07

--------------------------------------------

* 口语训练界面增加句子拼读功能。句子拼读每句显示得分(0.0-1.0),识别结果中分红绿色显示错误和正确单词(类似科大讯飞启明E听说),总得分以每句的得分累加。

首先在资源编辑器界面输入从数据库English表抽取句子的SQL,如:

SELECT * FROM english WHERE id>3204 and id<3208 ORDER BY id;

然后在“单词学习”界面》Oral按钮。来源下拉列表中选择“资源编辑器”即可。

参考:

org.cj.myword.ui.OralTrainingPane.check()

org.cj.myword.ui.OralTrainingPane.next()

org.cj.myword.ui.OralTrainingPane.recognizerListener.new RecognizerListener() {...}.onResult(...).new Runnable() {...}.run()

org.cj.myword.ui.OralTrainingPane.doQuizEnd()

* 句子拼读结束后特别以QuizItem方式显示详细报告。参考:

org.cj.myword.ui.OralTrainingPane.showOralTestReport()

org.cj.myword.ui.OralTrainingPane.createAndShowGUI(Container)

 

version 9.1 2018-04-01

--------------------------------------------

* 口语训练界面过滤掉带有标点符号的词语,参考:org.cj.myword.ui.OralTrainingPane.next()

* EnglightingPane界面CorrelationSet增加Sate状态筛选功能,参考:

org.cj.myword.ui.EnglightingPanel.setTableHeader()

org.cj.myword.ui.EnglightingPanel.customizeCellRendererAndEditor()

org.cj.myword.ui.EnglightingPanel.CheckBoxEditor

* “启发”界面“Graph(图形)标签页创建的图增加单词的Usage节点,参考:

org.cj.myword.ui.EnglightingPanel.updateGraph(CorrelationSet)

* org.cj.myword.ui.LearningPane.saveLearningData(String, long, int)增加最后一个int mode参数;

     并整理第一个参数String testName含义如下:

  testName 类似VocabularyTest[M]-Book[N]-Unit[K]VocabularyTest[M]-Book[N]-Unit[K]-review(错词复习)或SelectedWords(自定义单词表,通常为来自资源编辑器的单词)

 * 其中[N]=Book;[K]=Unit;

 * [M]与各种测试类型的对应关系如下:

 * 1-org.cj.myword.ui.LearningPane.restartWithList(ArrayList<Word>) Language: Chinese - English

 * 2-org.cj.myword.ui.LearningPane.restartWithList(ArrayList<Word>) Language: English - Chinese

 * 3-org.cj.myword.ui.LearningPane.doSpellingWordTest(ArrayList<Word>) Language: Chinese - English

 * 4-org.cj.myword.ui.LearningPane.doSpellingWordTest(ArrayList<Word>) Language: English - Chinese

 * 5-org.cj.myword.ui.LearningPane.doWordMatchTest(ArrayList<Word>, int) Language: Chinese - English

 * 6-org.cj.myword.ui.LearningPane.doWordMatchTest(ArrayList<Word>, int) Language: English - Chinese

 * 7-org.cj.myword.ui.LearningPane.doContextQuiz(ArrayList<QuizItem>) 语境测试

 * 8-org.cj.myword.ui.LearningPane.doOralTest(ArrayList<Word>, int) 单词拼读;

 * 9-org.cj.myword.ui.LearningPane.doOralTest(ArrayList<Word>, int) 句子拼读;

 

 

version 9.0 2018-03-13

--------------------------------------------

* 增加“口语训练”功能。“单词学习”界面》Oral按钮。参考:

org.cj.myword.ui.OralTrainingPane

org.cj.myword.ui.LearningPane.doOralTest(ArrayList<Word>, int)

* 按钮声效播放参考:

org.cj.audio.TXWavPlayer

org.cj.myword.ui.OralTrainingPane.play(String)

* 依赖:

 * 1. lib\Msc.jar;lib\json-jena-1.0.jar;

 * 2. msc32.dll,msc64.dll,libmsc32.so,libmsc64.so

 * 3. res目录

 * 4. msc目录

 * 5. src\com\iflytek\*源代码

 * 6. 网络(在线语音识别)

 * 7. 麦克风

* 联系开发者

cemike@126.com

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
语音识别是一种能够将人类语音转换为文字的技术,它可以应用在很多领域,如语音助手、自动化客服、语音输入等。Java作为一种通用编程语言,也可以集成语音识别,并实现语音转文字的功能。 首先,我们需要在官网注册账号,并创建一个应用,获取到的API Key和API Secret,这是使用语音识别服务的凭证。 接下来,在Java项目中添加语音识别的依赖包,可以通过在pom.xml文件中添加相关内容或者手动下载添加到项目中。依赖包提供了与语音识别API的交互接口。 然后,编写Java代码,使用提供的接口对语音进行识别。首先需要进行鉴权,使用获取到的API Key和API Secret,获取访问令牌,这样才能进行后续的语音识别操作。 在获取到访问令牌之后,就可以通过语音识别的API将音频文件或语音流传输到服务器上进行语音识别。识别结果以文本的形式返回,可以进一步处理或展示给用户。 在整个过程中,我们还可以设置一些参数,如音频编码格式、采样率等,根据实际需要进行调整。 最后,记得在不使用语音识别服务时,调用相应的接口释放资源,以避免资源的浪费和泄露。 总之,通过Java集成语音识别,我们可以方便地实现语音转文字的功能,为用户提供更加便捷和智能的服务体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值