zoukankan      html  css  js  c++  java
  • 用TTS实现文本转语音

    最近被toefl单词虐成狗::>_<::  

    想做一个可以自动把单词转成语音的软件,这样就可以在路上戴耳机边走边听啦~

    用微软的TTS语音库可以很容易地实现。早期的TTS要想实现中英文混合朗读还很麻烦,然而Win10里自带的新版SDK已经解决了这个问题。可以自动识别出中文和英文。这点超赞~

    注意:如果用的是英文版系统,需要先安装中文Speech Library

    然后在控制面板--语音识别选项里可以看到这个新的语音库:

    进入VS,新建一个C#工程,然后在Solution Explorer----References上右键,Add References,添加如下选项:

    实现文本转语音有两种Library,System.Speech或者SpeechLib。这里我用的SpeechLib

    基本的朗读功能实现如下:

    SpVoice voice = new SpVoice();            
    voice.Rate = 0; //语速,[-10,10]
    voice.Volume = 100; //音量,[0,100]
    voice.Voice = voice.GetVoices().Item(2); //语音库
    voice.Speak("中文speech");

    但是为了在手机上播放,仅仅让它读出来还不够....最好能保存到音频文件

    可以用SpeechLib自带的类:  SpeechLib.SpFileStream sfs=new SpeechLib.SpFileStream();

    还要注意一个问题:

    NT系统默认是Unicode编码,而TXT文件默认是ANSI编码。这样会导致txt文件中的中文识别不出来。解决方法是在StreamReader中自定义编码

    StreamReader reader = new StreamReader(FileName, System.Text.Encoding.Default)

    自制了一个小Demo:

    单击Select File,通过打开对话框打开txt文件

    单击Read,将文本自动转语音,并保存到D:233.mp3文件    【懒得写保存对话框啦

    Download

  • 相关阅读:
    Mybatis入门
    java开发七大原则
    常用的一些实用类
    sql语句大全
    jsp中9个隐含对象
    解决POST和GET方式的中文乱码问题
    Servlet跳转页面的重定向和转发
    通用增删改查的方式
    IDEA 部署spring Cloud
    Oracle基础语法
  • 原文地址:https://www.cnblogs.com/pdev/p/4831858.html
Copyright © 2011-2022 走看看