Delphi 实现简易语音发音(基于TTS方式)

本文介绍了如何在Delphi中利用TTS(文本转语音)技术实现语音发音。通过创建OLEObject并调用'SAPI.SpVoice'对象,可以实现简单的'Hello World!'发音。此外,还详细说明了在Delphi 7中导入Microsoft Speech SDK 5.1的步骤,包括安装SDK、导入类型库以及创建工程,并展示了如何在界面上添加控件并编写代码进行语音合成。
摘要由CSDN通过智能技术生成

uses Comobj;

procedure TForm1.Button1Click(Sender: TObject);
var
voice: OLEVariant;
begin
voice := CreateOLEObject('SAPI.SpVoice');
voice.Speak('Hello World!', 0);
end;

 

 

Delphi_TTS_1

unit Unit1; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls, ComCtrls, Menus, OleCtrls, ACTIVEVOICEPROJECTLib_TLB; 
 
type 
  TForm1 = class(TForm) 
    MainMenu1: TMainMenu; 
    Go1: TMenuItem; 
    Alpha1: TMenuItem; 
    N201: TMenuItem; 
    N501: TMenuItem; 
    N1001: TMenuItem; 
    RT: TRichEdit; 
    ss: TDirectSS; 
    procedure RS(Sender: TObject); 
    procedure N201Click(Sender: TObject); 
    procedure N501Click(Sender: TObject); 
    procedure N1001Click(Sender: TObject); 
    procedure Go1Click(Sender: TObject); 
  private 
    {
      Private declarations } 
  public 
    {
      Public declarations } 
  end; 
 
var 
  Form1: TForm1; 
 
implementation 
 
{
     $R *.dfm} 
 
procedure TForm1.RS(Sender: TObject); 
begin 
rt.Width :=form1.Width -10; 
rt.Height :=form1.Height -48; 
end; 
 
procedure TForm1.N201Click(Sender: TObject); 
begin 
form1.AlphaBlendValue := 51; 
end; 
 
procedure TForm1.N501Click(Sender: TObject); 
begin 
form1.AlphaBlendValue := 130; 
end; 
 
procedure TForm1.N1001Click(Sender: TObject); 
begin 
form1.AlphaBlendValue := 255; 
end; 
 
procedure TForm1.Go1Click(Sender: TObject); 
begin 
ss.Speak(rt.Text); 
end; 
 
end. 
View Code

SpeechLib_TLB控件效能

SpeechLib_TLB控件功能
我在Delphi编写的软件中用到SpeechLib_TLB,声音软件XPSpeech.msi,可以发出的声音不好听,而且声音很小,想请问是哪方面的原因,是XPSpeech.msi软件的原因吗?需要购买发声收费软件吗?
------解决方案--------------------------------------------------------


unit Ifly_Stts;



interface



implementation



// 各种声音格式

Const

 TTS_ADF_DEFAULT = 0;

 TTS_ADF_PCM8K8B1C = 1;

 TTS_ADF_PCM16K8B1C = 2;

 TTS_ADF_PCM8K16B1C = 3;

 TTS_ADF_PCM16K16B1C = 4;

 TTS_ADF_PCM11K8B1C = 5;

 TTS_ADF_PCM11K16B1C = 6;

 TTS_ADF_ALAW16K1C = 9;

 TTS_ADF_ULAW16K1C = 10;

 TTS_ADF_ALAW8K1C = 11;

 TTS_ADF_ULAW8K1C = 12;

 TTS_ADF_ALAW11K1C = 13;

 TTS_ADF_ULAW11K1C 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi中英文语音朗读程序(控件及源码)调试OK 先安装Microsoft Speech SDK 5.1,这是微软的声音支持控件 前面安装不多做介绍,一步一步安装即可 安装完成后,需要加载Delphi控件 在Delphi IDE中选择菜单Project,Import Type Library—点击按钮Add(C:\Program Files\Common Files\Microsoft Shared\Speech\ sapi.dll)—点击按钮Install-在Install对话框中点击按钮OK—在Confirm对话框中点击按钮Yes—在对话框中点击按钮OK。至此,共19个控件被添加到Delphi组件板ActiveX页上。其中spvoice控件是我们要使用的 Microsoft Speech SDK 5.1下载地址:http://intraweb.5d6d.com/thread-280-1-1.html SpVoice详解 属性 描述 AlertBoundary 取得或设置停顿分界线。 AllowAudioOutputFormatChangesOnNextSet 设置是否允许声音自动调整到合适状态以适应其音频输出。 AudioOutput .取得或设置当前声音使用的的音频输出对象 AudioOutputStream 取得或设置当前声音使用的的音频输出流对象。 EventInterests 取得或设置当前声音返回的事件类型。 Priority 取得或设置声音的优先级。 Rate 取得或设置阅读的速度。 Status 返回一个ISpeechVoiceStatus 对象用于显示当前阅读和事件的状态 SynchronousSpeakTimeout 取得或设置一个时间间隔,用于标识多久未获得一个输出设备后,一个同步的Speak 和SpeakStream将终止,以毫秒计算。 Voice 取得或设置发音对象。 Volume 取得或设置声音的大小 。 方法 描述 DisplayUI 是否在控制面板中展示详细设置。 GetAudioOutputs 返回一个可用的音频输出标记。 GetVoices 返回一个可用的发音对象。 IsUISupported 决定是否能通过控制棉板的音频设置来控制。 Pause 暂停朗读。. Resume 恢复暂停,继续播放。 Skip 在当前输入的文本流中向前或向后跳一定距离再播放。 Speak 阅读一个字符串。 SpeakCompleteEvent 得到一个朗读完毕的时间句柄 SpeakStream 朗读一个文本流或一个声音文件。 WaitUntilDone 阻塞进程,直到声音播放完毕或者超时。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值