/* 注明: 使用 MultiByteToWideChar 接口转换得 WCHAR,

QString inform = “各位大佬,不吝啬,点个赞!”;

WCHAR wChar[1024];

memset(wChar ,0,1024);

MultiByteToWideChar( CP_ACP , 0 , inform.toLocal8Bit(), inform.toLocal8Bit().size(), wChar , 1024);

强制转换得 LPCWSTR:

QString dateTime = QDateTime::currentDateTime().toString(“yyyy-MM-dd_hh-mm-ss”) + “.wav”;

LPCWSTR filename = (LPCWSTR)dateTime.data();

或者 LPCWSTR filename = dateTime .toStdWString().c_str();

*/

int MainWindow::TextToVideo(const int volume, const WCHAR* wChar, const LPCWSTR &filename)

{

// 初始化语音接口

ISpVoice *pVoice = nullptr;if (FAILED(::CoInitialize(nullptr)))return -1;HRESULT hr = CoCreateInstance(CLSID_SpVoice, nullptr, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);if (SUCCEEDED(hr)){// 获取当前的音量与音速long rate;pVoice->GetRate(&rate);USHORT volume;pVoice->GetVolume(&volume);qDebug()<<"volume:"<<volume<<"rate:"<<rate;pVoice->SetVolume(volume);     //设置音量// 获取当前的频率配置CComPtr<ISpStreamFormat> cpStream;HRESULT hrOutputStream =pVoice->GetOutputStream(&cpStream);if (hrOutputStream ==S_OK){CSpStreamFormat Fmt;hr = Fmt.AssignFormat(cpStream);if (SUCCEEDED(hr)){SPSTREAMFORMAT eFmt = Fmt.ComputeFormatEnum();       // 默认: SPSF_16kHz16BitMono   18qDebug()<<"format:"<<eFmt;}}// 设置当前朗读频率CComPtr<ISpAudio>  m_cpOutAudio; //声音输出接口SpCreateDefaultObjectFromCategoryId(SPCAT_AUDIOOUT,&m_cpOutAudio ); //创建接口SPSTREAMFORMAT eFmt = SPSF_8kHz16BitMono;CSpStreamFormat Fmt;Fmt.AssignFormat(eFmt);if (m_cpOutAudio)hr = m_cpOutAudio->SetFormat(Fmt.FormatId(), Fmt.WaveFormatExPtr() );elsereturn -1;pVoice->SetOutput( m_cpOutAudio, FALSE );// 设置输出到.wav文件里CComPtr <ISpStream> cpWavStream;CComPtr <ISpStreamFormat> cpOldStream;pVoice->GetOutputStream(&cpOldStream);CSpStreamFormat originalFmt;originalFmt.AssignFormat(cpOldStream);hr = SPBindToFile(filename, SPFM_CREATE_ALWAYS, &cpWavStream, &originalFmt.FormatId(), originalFmt.WaveFormatExPtr());pVoice->SetOutput(cpWavStream, TRUE);pVoice->Speak(wChar, SPF_DEFAULT, nullptr);pVoice->WaitUntilDone(1000);pVoice->Release();pVoice = nullptr;}::CoUninitialize();return 0;

}@TOC

参考文档:https://www.cnblogs.com/zd_ad/archive/2012/01/12/2320364.html

文字转语音并生成音频文件相关推荐

  1. python语音合成并播放_使用Python实现文字转语音并生成wav文件的例子

    目前手边的一些工作,需要实现声音播放功能,而且仅支持wav声音格式. 现在,一些网站上支持文字转语音功能,但是生成的都是MP3文件,这样还需要额外的软件来转成wav文件,十分麻烦. 后来,研究Pyth ...

  2. Java中使用Jacob实现Windows下语音合成并生成音频文件

    场景 在服务端根据执行的中文文字内容合成相应的音频文件. 这里推荐一种在Windows下调用jacob.dll文件实现语音合成. 注: 博客: https://blog.csdn.net/badao_ ...

  3. java文字转语音播报并输出文件

    一.pom.xml引入jar包依赖 <!-- https://mvnrepository.com/artifact/com.jacob/jacob 文字转语音 --> <depend ...

  4. C#生成音频文件以及转换成需要的格式

    花了三天才做出来这么个小东西,其中碰到了好多意向不到的问题与难题,直接看代码吧还是.其中需要DotNetSpeech.dll(生成因文件)和lame_enc.dll(用于音频格式的转换)两个类库,还需 ...

  5. 音频文件变成html文档,C#生成音频文件以及转换成需要的格式

    花了三天才做出来这么个小东西,其中碰到了好多意向不到的问题与难题,直接看代码吧还是.其中需要DotNetSpeech.dll(生成因文件)和lame_enc.dll(用于音频格式的转换)两个类库,还需 ...

  6. 通过百度语音生成音频文件

    第一步:准备工作,注册百度语音开发者账号,获得: APP_ID=108***09 API_KEY=5Tivv**********Zld SECRET_KEY=ID******************5 ...

  7. PHP--有道(百度)文字或语句转MP3音频文件

    第一:有道翻译[将英语单词或句子转语音MP3格式] /*** 生成单词对应的音频文件* @param string $name 单词名称* @return string*/public functio ...

  8. 一分钟让你知道文字转语音在线生成的软件在哪里?

    相信很多人都应该看过电影解说类的视频,从中你会发现,大多数它说的旁白都是用同一个男性的声音.那么有些人就会有疑问:这么多的电影配音真的是同一个人说出来的吗?当然是不可能的,其实这些声音是使用AI合成出 ...

  9. python 语音转文字_基于python将音频文件转化为文本输出

    实验目的:学习利用python进行音频转文本文件 实验环境:已正确安装python3.5 1.需要安装的第三方库 (1)安装speechrecognition speechrecognition集合了 ...

最新文章

  1. 现在,Serverless 真的已经成熟了吗?
  2. 一个生成全局唯一Sequence ID的高并发工厂类 (Java)
  3. 计算机考试受苦受累,受苦受累真是福作文800字
  4. RecycleView 源码解析
  5. Nginx 图片防盗链
  6. Java Web编程的主要组件技术——Hibernate入门
  7. Java Word转Html
  8. 固定频率调用接口方案
  9. 从“谈芯”走向“用芯” RISC-V 未来前景光明?
  10. 模拟退火算法及MATLAB代码
  11. 多租户商城开发 多租户SaaS商城源码下载
  12. Elasticsearch7.5配置IK中文分词器+拼音分词
  13. android 7 sl4a,SL4A 伴随Android7 浴火重生
  14. P4167 [Violet]樱花
  15. 前端笔记,table标签中td宽度不受控制的坑
  16. 白领十大职业病及对策
  17. StarRocks 集群安装部署文档
  18. 人文思考与科研探索之管锥篇
  19. 有效的括号长按键入验证外星语词典字符的最短距离用栈实现队列
  20. 修改Tomcat的端口号方法

热门文章

  1. 马士兵教育牛客网最新Java面试八股文通关手册
  2. HTML5培训课件:CSS3新增属性拿走不谢
  3. CVE-2016-0095分析
  4. 软件工程毕业设计 SSM健身运动平台管理系统(源码+论文)
  5. python真正好用的多线程库,使用python的selenium库还有多线程抓取CET4成绩
  6. LX12864P1屏幕使用介绍(ST7567驱动),显示横线、字符、图形
  7. 想额外收入10000+,想拥有私房钱的,想做自媒体创业的拿走
  8. Android动画屏保,Android Daydream 互动屏保
  9. 【文本检测】1、DBNet | 实时文本检测器
  10. 苏州科技大学计算机考研题型,苏州科技大学考研专业目录