C++调用微软TTS实现文字有声阅读

本文介绍了如何使用C++调用微软的Text-to-Speech(TTS)技术,通过安装微软语音平台SDK、Runtime和Language Packs,然后在VS中创建C++项目,设置头文件,初始化,并创建文本框和Slider控件来控制语速,实现文字的有声阅读功能。

首先安装微软语音平台,它包括了软件开发包SDK(MicrosoftSpeechPlatformSDK),运行时Runtime(Microsoft Server Speech Platform Runtime),以及各种语言包Language Packs,例如MSSpeech_TTS_zh-CN_HuiHui,以上涉及的三个安装包,下载地址

依次安装完成后,VS新建C++项目,头文件包含

#include <sphelper.h>
#pragma comment(lib,"sapi.lib") 

初始化,界面上创建一个文本框,添加cstring变量m_Edit1,用于输入文字;
一个Slider控件,对应变量m_sliderc,用于调整语速。

	pVoice = NULL; //初始化COM 
	if (FAILED(CoInitialize(NULL)))
	{
		mvcErr = true;
	}
	//初始化SAPI 界面上
	HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
	ISpObjectToken * pSpObjectToken = NULL;
	WCHAR*  pReqAttr = NULL;
	pReqAttr = L"language=804";
	if (SUCCEEDED(SpFindBestToken(SPCAT_VOICES, pReqAttr, NULL, &pSpObjectToken)))//804代表中文   409英文
	{
		pVoice->SetVoice(pSpObjectToken);
		pVoice->SetRate(m_sliderc.GetPos());//语速		-5~5
		pVoice->Speak(m_Edit1, 0, NULL);
		pSpObjectToken->Release();
	}
	else {
		mvcErr = true;
	}
	if (!SUCCEEDED(hr))
	{
		mvcErr = true;
	}

	if (mvcErr)
	{
		m_Msg = _T("没有安装语音SDK");
		UpdateData(false);
	}

效果如下:
在这里插入图片描述
下载完整项目源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fsnetj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值