设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12345下一页
返回列表 发新帖
查看: 9664|回复: 44
打印 上一主题 下一主题

[模块/函数] [分享]语音朗读通用模块

[复制链接]
跳转到指定楼层
1#
发表于 2006-5-28 05:51:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看了不少语音朗读的例子,觉得都不够理想,前段时间在网上的偶然所得,把它改编成为通用模块方便大家使用。

可改变朗读者,调节音量和朗读速度。

注意:需要引用 Microsoft Speech Object Library


<
游客,如果您要查看本帖隐藏内容请回复
'===============================================================================
'-函数名称:     MySpeak
'-功能描述:     朗读文本内容
'-输入参数说明: 参数1: 必选 strSpeak As String 朗读的文本内容
'               参数2: 可选 IntRate As Integer  设置朗读的速度 范围:-10到+10
'               参数3: 可选 intVolume As Integer  设置朗读的音量  范围:0到100
'               参数4: 可选 intVoiceID As Integer  朗读者ID
'-返回参数说明:
'-使用语法示例: Call MySpeak ("中华人民共和国")
'-参考:         网上资料
'-使用注意:     需要引用 Microsoft Speech Object Library
'-兼容性:
'-作者:         
fan0217@163.com
'-更新日期:    2006-05-25
'===============================================================================
rivate Function MySpeak(strSpeak As String, _
                Optional intRate As Integer = 0, _
                Optional intVolume As Integer = 50, _
                Optional intVoiceID As Integer = 0) As Boolean
               
On Error GoTo Err_MySpeak
    Dim oVoise As New SpeechLib.SpVoice
    Dim intTotalSpeech As Integer
   
    intTotalSpeech = oVoise.GetVoices.Count '获取朗读者的数量
   
    If intTotalSpeech = 0 Then Exit Function
   
   '设置朗读者
    If intVoiceID > intTotalSpeech - 1 Then intVoiceID = 0
    Set oVoise.Voice = oVoise.GetVoices.Item(intVoiceID)
   
   '设置朗读速度
    If intRate > 10 Then intRate = 10
    If intRate < -10 Then intRate = -10
        oVoise.Rate = intRate
        
   '设置朗读音量
    If intVolume > 100 Then intVolume = 100
    If intVolume < 0 Then intVolume = 0
        oVoise.Volume = intVolume
        
        oVoise.Speak strSpeak
        
    MySpeak = True
   
Exit_MySpeak:
    Exit Function

Err_MySpeak:
    MySpeak = False
    MsgBox Err.Description, 64, "fan0217"
    Resume Exit_MySpeak

End Function

本贴将持续更新:陆续贴上我收集到的语音朗读的方法.






[此贴子已经被作者于2006-5-27 22:00:10编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-5-28 06:02:00 | 只看该作者
谢谢
3#
发表于 2006-5-28 14:21:00 | 只看该作者
好.

回站长,二个问题都搞清楚了.

[此贴子已经被作者于2006-5-29 5:17:53编辑过]

点击这里给我发消息

4#
发表于 2006-5-28 17:08:00 | 只看该作者
非常好的模块,能够让新手很快了解如何使用语音.
楼上,声音的控制与语音包及精灵本身的声音有关,如果使用Agent为读的话,不同的精灵有不同的声音,一般来讲,女声比较清晰一些,可参考我以前做的一个英语小精灵的作品:
http://www.office-cn.net/forum.php?mod=viewthread&tid=34858
可以设置不同的精灵来读,并且有不同的舞蹈来配合读音.
5#
 楼主| 发表于 2006-5-29 03:55:00 | 只看该作者
采用Excel朗读功能的朗读器:

注意:需要引用 Microsoft Excel xx.x Object Library




Function MySpeak_Excel(strSpeak As String) As Boolean
On Error GoTo Err_MySpeak_Excel
Dim objEx As New Excel.Application

    If IsNull(strSpeak) Then Exit Function
   
    objEx.Speech.Speak strSpeak
   
    MySpeak_Excel = True
    Set objEx = Nothing
   
Exit_MySpeak_Excel:
    Exit Function

Err_MySpeak_Excel:
    MySpeak_Excel = False
    Set objEx = Nothing
    MsgBox Err.Description, 64, "fan0217"
    Resume Exit_MySpeak_Excel

End Function



[此贴子已经被作者于2006-5-29 18:37:59编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
6#
发表于 2006-5-29 17:08:00 | 只看该作者
ok!ddddddddddddddddd
7#
发表于 2006-5-29 17:08:00 | 只看该作者
thanks thanks
8#
发表于 2006-5-29 17:08:00 | 只看该作者
niu dddddddddddddddd
9#
发表于 2006-5-30 00:48:00 | 只看该作者
这个语音的很高深啊!

感谢,研究研究
10#
发表于 2008-3-15 16:22:57 | 只看该作者
不是吧.........fan0217版的语音朗读通用模块还搞出系列出来了,通通下载收藏学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-15 21:19 , Processed in 0.089582 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表