社区
C#
帖子详情
使用FrameWork,如何将文字转换成声音?
mmens
2006-08-29 04:01:55
需要将文字转换成声音读出来,不知道FrameWork有没有相应的类库。
请高手帮忙,提供个思路也行。谢谢了!
...全文
2174
35
打赏
收藏
使用FrameWork,如何将文字转换成声音?
需要将文字转换成声音读出来,不知道FrameWork有没有相应的类库。 请高手帮忙,提供个思路也行。谢谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
35 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
windflow
2006-08-30
打赏
举报
回复
这个问题不是这么简单的,科大讯飞做了多少年,花了多少人力,语音效果才基本过得去。这里面有词句判断,中英文识别,断句。很复杂啊,主要是发出来的声音要和人的语音接近。否则就是一堆垃圾。劝楼主放弃。
andylaus
2006-08-30
打赏
举报
回复
没接触过,应该是个高难度的问题,帮你顶了,呵呵
szc21
2006-08-30
打赏
举报
回复
mark
没了解过
pretty_soft
2006-08-30
打赏
举报
回复
用类库简单
也可以自己对应啊,弄些片断
terryghz
2006-08-30
打赏
举报
回复
见世面了~~~
jedliu
2006-08-30
打赏
举报
回复
类库,你要自己编吧,否则直接出来的声音...当然,如果你想膈应死人的话!
hy_lihuan
2006-08-30
打赏
举报
回复
不清楚是否有这样的类库,能否知道lz要用来解决什么问题。
因为像很多软件都是提供语音库,不过最主要的问题是说话的语态不是一般的程序可以解决的。非常专业的问题啊
doitnow2000
2006-08-30
打赏
举报
回复
只知道sapi.dll,没有试过。
高难度的问题.
只好帮你顶了。
Avoid
2006-08-30
打赏
举报
回复
void CCloseCard::OnButtonClosecard()
{
BOOL bUp = UpdateData(TRUE);
if(!bUp)
return ;
///////////////////////////////////voice20050203
GetDlgItem(IDC_BUTTON_EXIT)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON_CLOSECARD)->EnableWindow(FALSE);
HRESULT hrVoice;
HRESULT hrTokens;
HRESULT hrToken;
CComPtr<IEnumSpObjectTokens> cpEnum;
CComPtr<ISpVoice> cpVoice;
ULONG ulCount = 0;
ISpObjectToken *pokeObject;
WCHAR *pFileName;
CString strData;
CString strVoice;
CString strMoney;
int nPos =0;
ULONG ulItem = 0;
bool bGetVoice = false;
::CoInitialize(NULL);
USES_CONVERSION;
hrVoice = cpVoice.CoCreateInstance( CLSID_SpVoice );
if(SUCCEEDED(hrVoice))
hrTokens = SpEnumTokens(SPCAT_VOICES, NULL, NULL, &cpEnum);
if(SUCCEEDED(hrTokens))
hrTokens = cpEnum->GetCount(&ulCount);
for(ULONG i = 0; i < ulCount; i++)
{
cpEnum->Item(i, &pokeObject);
hrToken = pokeObject->GetId(&pFileName);
strVoice = pFileName;
nPos = strVoice.ReverseFind('\\');
strVoice.Delete(0, nPos + 1);
if("MSSimplifiedChineseVoice" == strVoice)
{
ulItem = i;
bGetVoice = true;
}
if(SUCCEEDED(hrToken))
pokeObject->Release();
::CoTaskMemFree(pFileName);
}
if(!bGetVoice)
goto Err;
if(SUCCEEDED(hrToken))
hrTokens = cpEnum->Item(ulItem, &pokeObject);
if(SUCCEEDED(hrTokens))
hrVoice = cpVoice->SetVoice(pokeObject);
if(m_dCharge != 0)
{
strMoney.Format("%.01f", m_dCharge);
strData = "找零,";
strData += strMoney;
strData += "元";
}
else
{
strData = "结帐";
}
if(SUCCEEDED(hrVoice))
hrVoice = cpVoice->Speak(T2CW((LPCTSTR)strData), SPF_DEFAULT, 0);
if(SUCCEEDED(hrToken))
pokeObject->Release();
Err:if(SUCCEEDED(hrTokens))
cpEnum.Release();
if(SUCCEEDED(hrVoice))
cpVoice.Release();
::CoUninitialize();
///////////////////////////////////////////
MemStream In, Out;
FUNCTYPE Func = NULL;
In.wstr("net");In.wstr("SendData");
Dispatch(&In, &Out);
Out.rbuf((BYTE *)&Func, sizeof(Func));
In.renew();Out.renew();
int nAgentID = 0;
int nPackageType = 0;
int nPackageSize = 0;
CString strModule = "ServerManager";
CString strFunction = "EndInvokeCard";
CString strRetModule = "AboutCount";
CString strRetFunction = "Ret";
nPackageSize = sizeof(nPackageType) + strModule.GetLength() + 1 + strFunction.GetLength() + 1 +
strRetModule.GetLength() + 1 + strRetFunction.GetLength() + 1 + m_strUserName.GetLength() + 1 +
sizeof(m_dConsume) + sizeof(m_dMoneyLeft) + sizeof(double);
In.wint(nAgentID);
In.wint(nPackageSize);
In.wint(nPackageType);
In.wstr((LPCSTR)strModule);
In.wstr((LPCSTR)strFunction);
In.wstr((LPCSTR)strRetModule);
In.wstr((LPCSTR)strRetFunction);
In.wstr((LPCSTR)m_strUserName);
In.wdouble(m_dConsume);
In.wdouble(m_dMoneyLeft);
if(m_dMoneyLeft < m_dConsume)
In.wdouble(m_dAddMoney);
else
In.wdouble(m_dCharge);
TransmitUI = m_hWnd;
m_nTransType = 2;
Func(&In, &Out);
}
VC版本。参看微软网站
GXY2005
2006-08-30
打赏
举报
回复
jf
Avoid
2006-08-30
打赏
举报
回复
TTS,微软网站上有。我这里有C++版本。不知楼主要不?
lih163
2006-08-30
打赏
举报
回复
学习
songlife33
2006-08-30
打赏
举报
回复
HOHO,搂主想翘科大讯飞的饭碗,厉害。
ilovechao1314
2006-08-30
打赏
举报
回复
speech sdk5.1,用这个就行了
英文和汉字都没有问题,就是有点慢
wls12342004
2006-08-30
打赏
举报
回复
sapi.dll 好象只能发英文,如果发汉字的话还要加个补丁的.
mmens
2006-08-30
打赏
举报
回复
先用TTS做了Demo,效果不是很好,读中文很生硬。
不过想想,毕竟是免费的东西,而且自己也没出力,先凑合着用了。
在这里谢谢大家了!都有分啊!:)
airon2002
2006-08-30
打赏
举报
回复
用TTS技术.很简单的.
俺们只在 PPC 上用过。
-渔民-
2006-08-30
打赏
举报
回复
学习
CodeProject-Jerry
2006-08-30
打赏
举报
回复
TTS
IBM Voice
COM组件 之用C++调用过 应该一样
MyLf
2006-08-29
打赏
举报
回复
高难度的问题.
加载更多回复(15)
Node2Speech:简单的命令行exe即可将文本转换为语音
简单的命令行exe即可将文本转换为语音。 为了方便起见,还包含一个已编译的32位exe。 需要安装.NET
Framework
。 -- 需要四个或更多命令行参数: 输出音量。 在0到100之间。 输出速度。 -10至10之间。 按名称...
c#学习笔记.txt
如果不
使用
new,那么在初始化所有字段之前,字段将保持未赋值状态且对象不可用。对于结构,不像类那样存在继承。一个结构不能从另一个结构或类继承,而且不能作为一个类的基。但是,结构从基类 Object 继承。结构可...
Unity 调用C# Speech类将
文字
转换为语音
Unity 调用C#类将
文字
转换为语音 做语音功能的时候有些人是调用事先录制好的音频来进行播放,但是这样很不方便,而且即使是动态加载也会使压缩包体积变大,所以下面就给大家介绍另外一个方法,只需要一个调用类就...
文本内容
转换成
语音播放的工具:Speech Mac
通过Speech Mac版,用户可以选择40多种
声音
和语言,方便地将文本转换为语音。用户可以将文本拖放或粘贴到Speech中,并随时更改语音和语速。此外,单击一个单词即可从文本的特定点播放,甚至可以将文本导出为音频文件...
使用
腾讯云实现录音语音转换
文字
简单DEMO
使用
腾讯云实现录音语音转换
文字
简单DEMO感谢对接腾讯云新建springboot项目创建一个接口(VoiceService)创建controller层(VoiceController)加入跨域配置类项目结构VUE结束 感谢 首先贴出后台提供 点这里 前台都是...
C#
110,530
社区成员
642,572
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章