用C#實現語音技術
“電腦朗讀”(英文)一個很好的觸發(fā)點,通過它可以實現電子小說閱讀、英文聽力測試、英文單詞學習...下面的Speech已對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); //發(fā)音
專業(yè)的3S站 3s8.cn
}
}
}
//========================Speech.cs======================
4.編譯Bedlang.Speech
csc /target:library /out:Bedlang.dll speech.cs /r:mstts.dll
如果用vs.net開發(fā),可直接生成項目就可以了。
5.發(fā)音實現
//========================demo.cs======================
分別加入Label,TextBox,Button控件各一個到windows Form中,修改它們的屬性,源代碼如下:
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;
專業(yè)的3S站 3s8.cn
///
/// 必需的設計器變量。
///
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 );
}
posted on 2008-09-04 15:02 死神 閱讀(400) 評論(0) 編輯 收藏 所屬分類: 音頻開發(fā)