a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

用C#實現語音朗讀技術

2023-05-14 16:26:30
字體:
來源:轉載
供稿:網友

本文使用MSTTS實現了語音朗讀功能,非常實用,你編寫完就可以用它來幫助你朗讀引文資料啦。只要進行下面的幾個步驟就可以了。

1.安裝MSTTS   如果你有裝金山詞霸,系統就已經安裝了,可以在winnt/speech中打到vtxtauto.tlb文件;

2.用.Net SDK自帶的tlbimp工具把vtxtauto.tlb轉換成.dll格式: 

tlbimp vtxtauto.tlb /silent /namespace:mstts /out:mstts.dll

這時的mstts.dll已成為.net framework運行庫的一個類。

3.編寫一個封裝vtxtauto的簡單類:Speech .

//========================Speech.cs======================
using System;
using mstts; //MSTTS名稱空間
namespace Bedlang{ //定義名稱空間
       public class Speech{ 
                private VTxtAuto VTxtAutoEx; 
                public Speech( ){ 
                        VTxtAutoEx = new VTxtAuto(); 
                        VTxtAutoEx.Register(" "," "); //注冊COM組件 
                } 
                public void Speak(String text){ 
                        VTxtAutoEx.Speak(text, 0); //發音 
                } 
        }
}
//========================Speech.cs======================

4.編譯Bedlang.Speech 

csc /target:library /out:Bedlang.dll speech.cs /r:mstts.dll

如果用vs.net開發,可直接生成項目就可以了。

5.發音實現 

分別加入Label,TextBox,Button控件各一個到windows Form中,修改它們的屬性,源代碼如下:

//========================demo.cs======================

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace Bedlang

        /// 
        /// Form1 的摘要說明。 
        /// 
        public class demo : System.Windows.Forms.Form 
        { 
                private System.Windows.Forms.Label label1; 
                private System.Windows.Forms.TextBox textBox1; 
                private System.Windows.Forms.Button button1; 
                /// 
                /// 必需的設計器變量。 
                /// 
                private System.ComponentModel.Container components = null; 
                public demo() 
                { 
                        // 
                        // Windows 窗體設計器支持所必需的 
                        // 
                        InitializeComponent(); 
                        // 
                        // TODO: 在 InitializeComponent 調用后添加任何構造函數代碼 
                        // 
                } 
                /// 
                /// 清理所有正在使用的資源。 
                /// 
                protected override void Dispose( bool disposing ) 
                { 
                        if( disposing ) 
                        { 
                                if (components != null) 
                                { 
                                        components.Dispose(); 
                                } 
                       } 
                        base.Dispose( disposing ); 
                } 
                #region Windows Form Designer generated code 
                /// 
                /// 設計器支持所需的方法 - 不要使用代碼編輯器修改 
                /// 此方法的內容。 
                /// 
                private void InitializeComponent() 
                { 
                        this.label1 = new System.Windows.Forms.Label(); 
                        this.textBox1 = new System.Windows.Forms.TextBox(); 
                        this.button1 = new System.Windows.Forms.Button(); 
                        this.SuspendLayout(); 
                        // 
                        // label1 
                        // 
                        this.label1.Location = new System.Drawing.Point(24, 16); 
                        this.label1.Name = "label1"; 
                        this.label1.Size = new System.Drawing.Size(120, 23); 
                        this.label1.TabIndex = 0; 
                        this.label1.Text = "輸入要朗讀的文字:"; 
                        // 
                        // textBox1 
                        // 
                        this.textBox1.Location = new System.Drawing.Point(24, 48); 
                        this.textBox1.Name = "textBox1"; 
                        this.textBox1.Size = new System.Drawing.Size(248, 21); 
                        this.textBox1.TabIndex = 1; 
                        this.textBox1.Text = ""; 
                        // 
                        // button1 
                        // 
                        this.button1.Location = new System.Drawing.Point(112, 112); 
                        this.button1.Name = "button1"; 
                        this.button1.TabIndex = 2; 
                        this.button1.Text = "朗讀"; 
                        this.button1.Click += new System.EventHandler(this.button1_Click); 
                        // 
                        // demo 
                        // 
                        this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); 
                        this.ClientSize = new System.Drawing.Size(292, 197); 
                        this.Controls.AddRange(new System.Windows.Forms.Control[] { 
                        this.button1, 
                        this.textBox1, 
                        this.label1}); 
                        this.Name = "demo"; 
                        this.Text = "demo"; 
                        this.ResumeLayout(false); 
                } 
                #endregion 
                /// 
                /// 應用程序的主入口點。 
                /// 
                [STAThread] 
                static void Main() 
                { 
                        Application.Run(new demo()); 
                } 
                private void button1_Click(object sender, System.EventArgs e) 
                { 
                        Speech s=new Speech(); //創建一個Speech對象 
                        if(textBox1.Text.Length==0) 
                                s.Speak("Please input letter."); //發音 
                        else 
                                s.Speak(textBox1.Text); 
                } 
        }
}
//========================demo.cs======================

6.編譯demo.cs 

csc demo.cs /r:bedlang.dll

也可以在在Visual Studio.net集成開發環境中直接編譯。

7.運行demo.exe

輸入要要朗讀的文字,看看是否能正確讀出來。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩一区二区在线观看视频 | 成人亚洲精品久久久久 | www.久久.com| 国产1页| 香蕉三级 | 欧美激情第1页 | 日韩字幕一区 | 日本久久网 | www久久久久久久 | 精品在线不卡 | 欧美一二三区在线 | 亚洲狠狠爱一区二区三区 | 成人黄色小视频 | 91在线入口 | a视频在线观看 | 久久电影网 | 欧美在线视频不卡 | 久久精品久久久久电影 | 久久亚洲一区 | 黄色永久网站 | 亚洲精品www久久久久久广东 | 蜜桃av人人夜夜澡人人爽 | 中文字幕精品一区二区三区精品 | 欧美在线二区 | 亚洲精品久久久久久久久久久 | 在线一区 | 黄色激情av | 福利视频一区 | 久久久国产精品视频 | 国产精品18hdxxxⅹ在线 | 亚洲国产精品成人综合色在线婷婷 | 美女视频久久 | 日韩精品在线一区 | 国产999精品久久久久久 | 蜜桃久久 | 女同理伦片在线观看禁男之园 | 日韩区| 日韩精品免费 | 久草福利在线视频 | 综合二区 | 91影院 |