Microsoft Speech SDK 5.1 Language 中文辨識不好 ? |
答題得分者是:aquarius
|
ry_lee
高階會員 發表:368 回覆:251 積分:123 註冊:2002-03-19 發送簡訊給我 |
|
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
|
mind9sky
一般會員 發表:1 回覆:4 積分:1 註冊:2003-04-03 發送簡訊給我 |
小弟最近也試用MS Speech 5.1來朗讀繁體中文,但是根據MS文件上說明,只支援簡體,故小弟將繁體轉換為簡體後,再去讀後,發現尚未轉換簡體前還可讀出六成的文字,轉換後則亂七八糟,大大可否幫忙看一下,謝! unit sapi11; interface uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, OleServer, SpeechLib_TLB; type
TForm1 = class(TForm)
SpVoice1: TSpVoice;
Button1: TButton;
Memo1: TMemo;
Memo2: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation
uses cvcode;
{$R *.DFM} procedure TForm1.Button1Click(Sender: TObject);
var
ST : SpObjectToken;
Spi: ISpeechObjectTokens;
i : integer;
ss: string; function Big5ToGB(sBig5: string): string;
var ws: array[0..32767] of WideChar;
s: array[0..65535] of char;
begin
ZeroMemory(@ws, Length(ws) * SizeOf(WideChar));
ZeroMemory(@s, Length(s) * SizeOf(char));
MultiByteToWideChar(950, MB_COMPOSITE, PChar(sBig5), -1, @ws, Length(ws));
WideCharToMultiByte(936, WC_COMPOSITECHECK, @ws, -1, @s, Length(s), '?', PBOOL(false));
result := s;
end; begin
spi:= SpVoice1.GetVoices('','');
for i:=0 to spi.count do
begin
st:= spi.item(i);
if trim(st.GetDescription(i))='Microsoft Simplified Chinese' then
begin
spVoice1.voice:= st; //選擇簡體,
//若於此時spvoice.speak繁體字可以讀出約六成的繁體字
break;
end;
end;
memo2.Font.Charset:= 134; //'GB2312_CHARSET';
ss:=BIG5toGB(memo1.Lines.Text); //轉換為GB
memo2.Lines.Add (ss); //GB顯示於memo2上
SpVoice1.Speak(ss,0);
end;
end.
程式有兩個memo, memo1為繁體字,memo2輸出為簡體字
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |