文本字符串转成wav声音文件

uses ComObj, SpeechLib_TLB,Activex;

procedure TextToWav(Atext: string; AFieldName: string);
var
  SpFileStream1: TSpFileStream;
  SpVoice1: TSpVoice;
  ShengYinXuHao: integer;
begin
  // 声音序号  0为中文,1为英文
  ShengYinXuHao := 1;
  if ShengYinXuHao <> 1 then
    ShengYinXuHao := 0;
  //
  SpVoice1 := TSpVoice.Create(nil);
  SpFileStream1 := TSpFileStream.Create(nil);
  try
    SpVoice1.Voice := SpVoice1.GetVoices('', '').item(ShengYinXuHao);
    // SpVoice1.Volume := 30; //音量 0到100
    // SpVoice1.Rate := 0; // 读速 -5到5之间
    SpFileStream1.Format.type_ := SAFT8kHz8BitStereo; // SAFT8kHz8BitMono;
    SpFileStream1.Open(AFieldName, SSFMCreateForWrite, false); // + '.wav';
    SpVoice1.AudioOutputStream := SpFileStream1.DefaultInterface;
    SpVoice1.Speak(Atext, SVSFlagsAsync);
    SpVoice1.WaitUntilDone(-1);
    SpFileStream1.Close;
  finally
    if SpVoice1 <> nil then
      SpVoice1.Free;
    if SpFileStream1 <> nil then
      SpFileStream1.Free;
  end;
end;

//使用方法:

  sPath := ExtractFilePath(ParamStr(0));
  try
    coinitialize(nil);
    TextToWav('begin', sPath + 'mp3\av.wav');
  finally
    couninitialize;
  end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值