• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#中实现语音朗读(短信&语音短信)sms

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
1、群发短信有几种方式:

     1.1 短信猫: 一个普通的工控机,插入SIM卡,可以通过接口的方式发送短信,点对点发送,到达率快准确,但是呼出的号码是普通的手机号码。 缺点:移动对SIM卡的限制是每小时200条,发送太多会锁卡。 目前短信猫有8端口的,即1小时最多能发送1600条。每条短信的价格为0.1元。  技术实现:分为AT指令,短信猫SDK和RTX插件方式 ,短信猫通常都支持共享数据库方式。共享数据库中,涉及4个表:待发送表,发送成功表,发送失败表,消息接收表(系统可接收和处理短信用户发送的短信,进行双向互动)。短信猫一般对短信的大小有限制(如字符70的限制),故需要对长短信进行拆分。相关资料可参考:

短信切割算法: http://www.cnblogs.com/ycoe/archive/2008/12/25/1362596.html

短信字符串分拆  : http://www.cnblogs.com/roboth/archive/2008/11/26/1341272.html

     1.2 SP方式:有专门做短信的SP厂商提供各种接口,只需要调用就可以,达到率看你申请的是何种业务,也可以保证你呼出的是一特服号,不需要购买任何设备,适合于提供公用信息的业务,目标号码不确定。具体发送费用需要跟sp厂商谈判,据说最便宜的能谈到4分钱,需预付费。SP厂商提供WebService或其他形式接口,此方案严重依赖互联网,SP的服务器端维护一个短信消息队列,故短信发送会有一定的延迟,平日里最多为半个小时,节假日会稍长,过年时甚至会延迟2日天。SP收费分为发送收费和到达收费,当遇到空号,欠费,长时间关机等情况时,短信会发送失败,即未到达。通常的到达率为98%。SP还支持显示特殊发送号码的服务,即显示短信来自你自己的手机号或特服号。SP方式支持也支持收发双向互动。  *从网上会搜索到很多SP厂商,各厂商提供的服务也有细微差别。 此方法严重依赖互联网。

 

SP 短信开发-基础知识篇  http://www.cnblogs.com/dragon-china/articles/417486.html

      在此,谴责一下SP厂商对垃圾短信的放任。

     1.3 移动企信通  :一个工控机,移动提供的。有特服号,到达率都很高,但是有发送人员白名单的限制,适合企业内部使用。移动提供SDK开发包,具体费用根据短信数量采用对应的包月模式,发送费用5分钱。 这是我们准备采用的方式。

 

     1.4  手机编程:使用手机作为短信发射装置。Nokia等很多手机都支持,其中印度微软为windows mobile的手机开发了一个短信发送的SDK. 

 2、群发语音短信       联系SP厂商,可采用租用坐席方式做外呼,只播放语音。厂商提供接口,上传wav文件和发送人员列表到服务器。

 

   语音短信开发中,涉及到如何将录入的文字朗读出来并保存为wav文件,即TTS。项目中采用微软的SAPI 5开发步骤如下:

1. 下载SAPI SDK 和语言包(支持中文和日语):

SAPI 5 SDK: http://download.microsoft.com/download/speechSDK/SDK/5.1/WXP/EN-US/speechsdk51.exe

语言包: http://download.microsoft.com/download/speechSDK/SDK/5.1/WXP/EN-US/speechsdk51LangPack.exe

2. 通读 陈本峰 的文章 : .Net平台下开发中文语音应用程序  http://www.microsoft.com/china/community/program/originalarticles/TechDoc/Cnspeech.mspx

  其中Com组件导入,可以采用Visual Studio的导入Com组件界面完成。

代码如下

 

//朗读
private void buttonSynthesis_Click(object sender, System.EventArgs e)
 {
     try
 {
         SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
         SpVoice Voice = new SpVoice();    
         Voice.Speak(this.textBoxText.Text, SpFlags);
     }
     catch(Exception er)
     {
 MessageBox.Show("An Error Occured!","SpeechApp", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
//生成声音文件(Wav)
private void buttonTTStoWave_Click(object sender, System.EventArgs e)
 {
     try
 {
         SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
         SpVoice Voice = new SpVoice();    
         SaveFileDialog sfd = new SaveFileDialog();
         sfd.Filter = "All files (*.*)|*.*|wav files (*.wav)|*.wav";
         sfd.Title = "Save to a wave file";
         sfd.FilterIndex = 2;
         sfd.RestoreDirectory = true;
         if (sfd.ShowDialog()== DialogResult.OK) 
         {
             SpeechStreamFileMode SpFileMode = SpeechStreamFileMode.SSFMCreateForWrite;
             SpFileStream SpFileStream = new SpFileStream();
             SpFileStream.Open(sfd.FileName, SpFileMode, false);
             Voice.AudioOutputStream = SpFileStream;
             Voice.Speak(txtSpeakText.Text, SpFlags);
             Voice.WaitUntilDone(Timeout.Infinite);
              SpFileStream.Close();
         }
     }
     catch(Exception er)
     {
 MessageBox.Show("An Error Occured!","SpeechApp", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }

 

3. 采用文章中方法后,我们遇到了问题,系统只能朗读英文,不支持中文朗读。解决方法,定义SpVoice对象的Voice属性为中文类型。

 

ISpeechObjectTokens tokens = voice.GetVoices(string.Empty, string.Empty);
                 int index = GetChineseVoiceIndex(tokens);
                 voice.Voice = tokens.Item(index);

 

   简单的语音短信就生成了。

 其他相关信息:

短信的分成模式

  短信如何让门户网站盈利呢?这首先要搞清楚移动梦网与SP们的分成模式。我们以XX网站为例来说明。

  XX网站推出了名为"疯狂笑话"的服务,有两种收费方式:一是点播,手机用户想听笑话时,则发短信至该网站点播,然后就会收到网站发来的一条笑话,每条信息费是1元;二是包月,手机用户只需发一条短信至XX网站,定制"疯狂笑话"的包月服务,定制成功后,每天就可以定时收到一条笑话,包月费是10元。

  点播时,中移动规定的点播信息费是每条最高2元,我们就以XX网站的每条1元信息费来说明。用户每点播一条信息,付出信息费1元(其实真正付出了1.1元或1.15元,因为中移动的全球通用户每条短信0.10元,神州行用户0.15元,这是基本通道费,完全由移动收取,与网站无关)。这1元钱,中移动取其中的15%即0.15元,剩余的85%即0.85元归网站所有。

  包月时,中移动规定的包月费是每月最高30元,我们就以XX网站的10元包月费来说明。这10元,中移动首先要扣除2.4元的不均衡通道费(由于手机用户包月,只在定制时付出0.10元或0.15元的基本通道费,其后的一个月,他只接收信息,中移动无法向他收费,因此中移动就把这笔钱转嫁到了SP身上,改为向SP收取,每条0.08元,称为不均衡通道费,每月30条时即为2.4元),剩余的7.6元,中移动再拿走15%的代收费分成,余下的85%归XX网站所有。

  也就是说,网站提供的点播或包月服务,中移动要首先扣除基本通道费或不均衡通道费,然后再按15:85的比例分成。

  这个游戏规则,是中移动单方面制定的,各SP们只能按上述模式来运作,没有发言权。据说,只有腾讯公司敢与中移动讨价还价。因为腾讯的QQ有数千万注册用户,这是一个连中移动都不敢忽视的数字。

 

手机短信发送接收流程:
源手机-》基站-》短信中心-》基站-》目的手机 
SP-手机流程:sp-短信网关(包括网关到网关的转发)-》短信中心-》基站-》目的手机

 
短信是面向非连接的数据传输,也就是说不管手机开不开机,对方(手机或SP)都可以对其发送短信,而这些短信都暂存在SC(Service Center)中,当接收方手机开机或有接受能力的时候SC再将存储的短信发送给它,不过SC存储时间的长短由它的运营商来决定,一般是24小时。

 

手机短信发送接收流程: 源手机-》基站-》短信中心-》基站-》目的手机  SP-手机流程:sp-短信网关(包括网关到网关的转发)-》短信中心-》基站-》目的手机

短信是面向非连接的数据传输,也就是说不管手机开不开机,对方(手机或SP)都可以对其发送短信,而这些短信都暂存在SC(Service Center)中,当接收方手机开机或有接受能力的时候SC再将存储的短信发送给它,不过SC存储时间的长短由它的运营商来决定,一般是24小时。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#字符转换ANSI文本格式读写Unicode,Default,Utf8,ASCII发布时间:2022-07-18
下一篇:
C#后台执行脚本发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap