zoukankan      html  css  js  c++  java
  • 关于文字与声音之间转换的事 itl

          关于最近写的这个程序,写一个随笔吧,留下足迹,以供以后参考看看;这个程序主要就是实现了文字转换成声音,也可以装换MP3格式的文件。主要是利用DotNetSpeech.dll来实现的,主要发声代码就是:

    1 using DotNetSpeech;
    2 SpeechVoiceSpeakFlags SVPF = new SpeechVoiceSpeakFlags();
    3 SpVoice Voice = new SpVoice();
    4 Voice.Rate=2; //设置读的速度
    5 Voice.Speak("需要读的文字");

    转换成MP3文件的代码如下:

     1  using DotNetSpeech;
    2 SpeechStreamFileMode SSFM = SpeechStreamFileMode.SSFMCreateForWrite;
    3 SpFileStream SFS = new SpFileStream();
    4 SpeechVoiceSpeakFlags SVPF = new SpeechVoiceSpeakFlags();
    5 SpVoice Voice = new SpVoice();
    6 SFS.Open(pathBase + @"\" + FloderName + @"\" + fileName + ".mp3", SSFM, false);
    7 Voice.AudioOutputStream = SFS;
    8 Voice.Speak(strTxt, SVPF);
    9 Voice.WaitUntilDone(System.Threading.Timeout.Infinite);
    10 SFS.Close();

    其实主要代码就以上两部分,但是我后来我发现当字符串超过1000000后就会出异常,后来我就又写了一个分割字符串的方法:

     1 int strLastLength;  //字符串剩余的长度
    2 public List<string> WorkString(string str, int strMaxSize, List<string> list)
    3 {
    4
    5 int i = 0;
    6 int count = 0; //循环的次数
    7 strLastLength = str.Length; //字符串剩余的长度
    8 while (strLastLength > strMaxSize)
    9 {
    10
    11 string temp = str.Substring(i, strMaxSize);
    12 list.Add(temp);
    13 i = i + strMaxSize;
    14 strLastLength = strLastLength - strMaxSize;
    15 count++;
    16 }
    17 if (i == 0)
    18 {
    19 list.Add(str);
    20 return list;
    21 }
    22 else
    23 {
    24 string temp = str.Substring(count * strMaxSize, strLastLength);
    25 list.Add(temp);
    26 return list;
    27 }
    28
    29 }

    还有一种方法就是利用vbs脚本,这就个很简单了,几乎就是一句

    1 Voice=CreateObject("SAPI.SpVoice")
    2 Voice.Speak("需要读的字符串")

    这个程序还用了一个backgroundWorker这个控件,可以异步执行,在转成MP3文件时,不会卡死程序。

    还有一个想要留给我自己看的就是当使用NotifyIcon这个控件时系统托盘里的图标会延缓消失,在网上看到的方法是这样解决的:

    1  protected override void OnClosing(CancelEventArgs e)
    2 {
    3
    4 myNotifyIcon.Visible = false;
    5 base.OnClosing(e);
    6 }

    还在博客园看到了一种把把声音转成文字的方法,但是现在这转换的效果普遍不好,看一下效果就行了,前提是在有网的情况下,并且还得是web-kit内核的浏览器

    1 <input type="text" class="text" name="value_2" id="value_2" x-webkit-speech>

    只是对这个语音与文字之间的转换挺感兴趣,所以,就根据我写的程序把主要代码拿出来与大家分享一下,也是为以后留给自己看看,只是抛砖引玉罢了,希望大家多提建议多评论。我把我的完整项目上到网上去了,感兴趣的朋友可以去下载,下载地址:http://www.hml330.ys168.com/   刚才看见有朋友说下载不了,是你没习惯这个网盘没找到那就给大家说一下怎么下载吧。打开链接后按图操作

    点那里之后选择放弃认证,然后就是

    这里了可以下载的。



    如果你觉得有用请点”点赞“/

  • 相关阅读:
    Python作业之分页显示内容
    Codeforces Round #368 (Div. 2)
    数论专项测试——约数个数和(lucas的数论)
    数论专题测试——逆元
    数论专题测试——幸运数字
    bzoj2219: 数论之神
    bzoj3283: 运算器
    梅森素数
    后缀数组
    Hash_1014: [JSOI2008]火星人prefix
  • 原文地址:https://www.cnblogs.com/im0330/p/2345970.html
Copyright © 2011-2022 走看看