基于java的智能计算器_基于Java的语音计算器实现

2012.07 电脑编程技巧与维护 基于 Java 的语音计算器实现 王浩亮 1 引言 计算器这一小小的从计算机中割裂出来的程序机器, 因其功能简便、 价格便宜、 利于携带与稳定性好等特点, 已经被广泛应用于办公、 商业等日常生活中, 极大地方便了人们对于数字的整合运算。 语音计算机器除能够实现普通型计算器的所有计算功能以外, 还具备了语音发声技术, 让您录入数据时能够听到的语音提示, 一有错误可立即得到纠正, 加快了计算时所需要的时间并保障了准确性。 文中所设计的中文语音计算器, 设计重点突出语音功能,对计算器的功能做基本加减乘除四则运算功能。 所有发音都是中文, 并支持语音包更换。 软件的功能也比较实用, 可用键盘也可用鼠标输入, 每次输入都有语音提示, 计算结果可以马上播报; 支持语音智能播报, 如: 123 读作一百二十三。 2 算法思想 计算器程序可以包括各种类型的计算, 并可为各种运算提供语音播报。 根据计算结果, 语音播报运算结果, 所以要根据实际运算情况录制语音内容, 建立语音库。 文中所述计算器程序主要为满足整数的加减乘除四则运算,根据功能给出算法的思想, 确定语音库中语音内容 。 (1) 首先程序要实现按键的语音播报, 语音集合 S 中应包括界面中所有功能按键的语音 {加、 减、 乘、 除、 等于…}。 (2) 对计算结果数字进行拆分, 获得各个进位的数字, 从语音库中获取相应语音信息, 合成计算结果数字语音播报。 (3) 数字拆分方法, 利用数字除以相应位上的权值, 获得商和余数, 对于中文数字读音, 所得商大于 0 即要获得整数语音再连接相应位权的语音。 如 2356 2356/1000,商为 2 余数为356, 此时获得 2 的语音和千的语音, 然后用余数 356 除以100;需要获得 3 的语音和百的语音;依次下去, 将整个数读出。 对于英文读音由于 11-19, 10、 20……90 的读音无规律, 所以都要配置相应语音后进行合成, 即比中文语音有所增加。 (4) 根据第 3 步数字拆分方法, 为了实现中英文语音的兼容性, 语音内容集合 S 中应包括 {…百万、 十万、 万、 千、百、 九十、 八十……二十、 十九、 十八、 ……十、 九、 八…… 零}。 3 系统实现 3.1 计算器功能实现 界面效果如图 1 所示,主要完成四则运算。 功能事件响应主要代码: public void actionPerformed(ActionEvent e){ if ((e.getActionCommand ().compareTo ("0") >=0)&&e. getActionCommand().compareTo("9")<=0)/* 按键为数字的事件响应代码 */ {this.text.setText(this.text.getText()+e.getActionCommand());} else if(e.getSource()==this.button_add){ /* 按键为加的事 件响应代码 */ String str=this.text.getText(); num=Double.parseDouble(str);; this.text.setText(""); type=1; } 摘 要: 随着计算器广泛应用于办公、 商业等日常生活, 录入速度和准确性越来越受到重视, 语音计算器具有提高录入数据速度和增加准确性等优势。 文中对语音计算器语音集合的算法进行探讨, 语音可自由更换并支持中英文语音播报, 采用 Jav

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值