首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++文本到语音未定义错误

C++文本到语音未定义错误
EN

Stack Overflow用户
提问于 2015-03-29 18:02:47
回答 2查看 179关注 0票数 0
代码语言:javascript
运行
复制
#include <windows.h>
#include <mmsystem.h>
#include <iostream>
#include <string.h>
#include <fstream> 

char *sounds[] = {"d.wav","ai.wav","v.wav","i.wav"};

int main()
{
    char input[20];
    int k;
    int i = 0;
    std::cin >> input;
    while (input[i])
    {
        k = input[i] - 'a';
        PlaySound(TEXT(sounds[k]), NULL, SND_ASYNC);
    }
system("pause");
}

为了制作一个文字到演讲的程序,我遇到了这个问题。

int,读取输入并播放与所读取的字符串连接的.wav文件。这个问题来自于PlaySound(TEXT(sounds[k]), NULL, SND_ASYNC);。错误的内容为:(IntelliSense:标识符“”是未定义的)和(error C2065:‘and’:未声明的标识符)。这两者的意思似乎是相同的,然而,我找不到问题的根源或原因。L听起来是如何定义的?我将如何修复它?

EN

回答 2

Stack Overflow用户

发布于 2015-03-29 18:05:59

TEXT(sounds[k])引起了这个问题。TEXT()是一个宏,它扩展到L,后面跟着您在里面键入的内容,所以这相当于Lsounds[k],因此出现了错误。

票数 0
EN

Stack Overflow用户

发布于 2015-03-29 18:31:20

PlaySound API用于播放波形文件。您应该使用SAPI COM接口进行TTS:

代码语言:javascript
运行
复制
CComPtr <ISpVoice>  cpVoice;

//Create a SAPI Voice
HRESULT hr = cpVoice.CoCreateInstance(CLSID_SpVoice);

if(SUCCEEDED(hr))
{
  cpVoice->Speak(L"Hello World",  SPF_DEFAULT, NULL);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29332786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档