声音问题!问题解决可以加分(急)

lm517 2003-09-01 06:35:38
我在做一个收银的功能,当我点“收款”后,比如:150元,电脑就会报数:一百五十元。
怎么解决?
...全文
给本帖投票
88 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hnzhaihui 2003-09-03
  • 打赏
  • 举报
回复
我公司的监控软件就是用的此种办法,只要优化一下算法,播放连贯应该没有问题。
northwolves 2003-09-02
  • 打赏
  • 举报
回复
我做过类似程序,声音连贯性不是太理想,单个字的录音尽可能短些会有所改善
dragon525 2003-09-02
  • 打赏
  • 举报
回复
用上面的方法也是可以的,但比较麻烦。
而且,难点是要使播放的几个声音文件连续,及一个播完了,要马上接着播第2个……这样的话效果可能不是很好~!

(以前,好象有人专门做了一个这样的空间的。好象在CSDN里发布过,我不记得了:)
lm517 2003-09-02
  • 打赏
  • 举报
回复
Option Explicit
Private Declare Function sndPlaySound Lib "WINMM.DLL" Alias _
"sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As _
Long) As Long

Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_NODEFAULT = &H2
Const SND_LOOP = &H8
Const SND_NOSTOP = &H10

Private Sub Command1_Click()
Call sndPlaySound("H:\WAV\2.WAV", SND_SYNC)
End Sub

为什么发出的是DING的声音?
haal 2003-09-02
  • 打赏
  • 举报
回复
1、先将壹贰……拾、佰、等人民币用的字录成音
2、先把数字转换成大写金额,即将100500.35转换成一万零五百元三角五分(可以查有关资料)
3、直接一个字一个字的读出来即可
如有什么疑问,  call me Email:ntlhx@sina.com
konglin 2003-09-02
  • 打赏
  • 举报
回复
我的思路:
1、首先把需要的声音录成文件;
2、判断朗读数字的情况(有无小数点、小数点前共几位数字、后有几个数字、紧跟小数点前有几个零)
3、根据2的情况使用判断语句构造朗读过程,朗读方法根据楼上所讲;
4、10500.35可朗读为‘一万零五百元三角五分’
Gelim 2003-09-01
  • 打赏
  • 举报
回复
楼上的并没有给出播放声音的方法,可参看下面:

mciSendString "close 你的声音文件", vbNullString,0,0
mciSendString "open 你的声音文件", vbNullString,0,0
mciSendString "play 你的声音文件", vbNullString,0,0

踏平扶桑 2003-09-01
  • 打赏
  • 举报
回复
先作好那些声音文件,放到一个特定得目录里(或用资源文件),然后计算完后进行判断,比如
if num<100 then '这一定是个小于100得二位或1位数,小数再次不考虑
if num>10 then '一定是个2位数
……'进行判断比如用for语句进行或者用数学的方法,得到第一个数,然后播放这个数得声音再播放十这个声音。剩下得个数也这样做
endif
endif

呵呵~~方法苯了点,希望对你有所帮助。
lm517 2003-09-01
  • 打赏
  • 举报
回复
楼上的思路正是我想要的,但是具体用代码怎么实现呢?
踏平扶桑 2003-09-01
  • 打赏
  • 举报
回复
先录好每个数字和百,十,元的声音,然后进行判断,进行播放。
dragon525 2003-09-01
  • 打赏
  • 举报
回复
用MS的语音朗读引擎TTS
你先查查资料。

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部