Microsoft Text-to-Speech (MSTTS) 引擎可將英文文字轉換為自然語音輸出。結合 Speech API (SAPI),於 Delphi 平台開發教學軟體,提供單字/段落朗讀、語速語調調整、播放控制等功能,輔助英語學習者獲得標準發音示範。
Windows\Speech\Vtxtauto.tlb 型別庫與 Vcmd.exe 進程外自動化伺服器。Project → Import Type Library → Add → Vtxtauto.tlb,勾選 Generate Component Wrapper,產生 VTxtAuto_TLB.pas。| 成員 | 說明 |
|---|---|
Speak(pszBuffer: WideString; dwFlags: Integer) | 朗讀文字,旗標控制語氣/優先級 |
Register(pszSite, pszApp: WideString) | 註冊應用身分,區分多程式共用引擎 |
IsSpeaking: WordBool | 檢查是否正在朗讀 |
AudioPause / AudioResume / StopSpeaking | 暫停/恢復/停止播放 |
AudioFastForward / AudioRewind | 跳至下一句/上一句 |
Speed: Integer | 語速 (字/分),預設 170 |
Memo:編輯/顯示朗讀內容TrackBar (Max=300):語速滑桿var TTS: IVTxtAuto; // 全域自動化介面
procedure TForm1.FormCreate(Sender: TObject);
begin
TTS := CoVtxtAuto_.Create;
TTS.Register('MyApp', 'MyApp'); // 必須註冊
TrackBar1.Position := TTS.Speed;
lblSpeed.Caption := '當前速度:' + IntToStr(TTS.Speed) + ' 字/分';
end;
procedure TForm1.btnReadClick(Sender: TObject);
begin
TTS.Speak(Memo1.Text, vtxtst_READING);
end;
procedure TForm1.btnPauseClick(Sender: TObject);
begin
if TTS.IsSpeaking then TTS.AudioPause else ShowMessage('未在朗讀狀態!');
end;
procedure TForm1.btnResumeClick(Sender: TObject);
begin TTS.AudioResume; end;
procedure TForm1.btnFastForwardClick(Sender: TObject);
begin TTS.AudioFastForward; end;
procedure TForm1.btnRewindClick(Sender: TObject);
begin TTS.AudioRewind; end;
procedure TForm1.btnImportClick(Sender: TObject);
begin
if OpenDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
procedure TForm1.btnExportClick(Sender: TObject);
begin
if SaveDialog1.Execute then Memo1.Lines.SaveToFile(SaveDialog1.FileName);
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
TTS.Speed := TrackBar1.Position;
lblSpeed.Caption := '當前速度:' + IntToStr(TTS.Speed) + ' 字/分';
end;
編譯生成獨立 EXE,相容所有 Windows 版本。功能驗證:導入英文文檔,測試朗讀流暢度、語速調整、暫停恢復、句子跳轉、檔案匯入匯出,均運行良好。
突破傳統軟體「僅支援單字發音、無法控制播放狀態」限制,實現:真人級標準發音、多文檔連續朗讀、語速/語調自由設定、完整播放控制,極大提升自主學習效果。