编译 Festival/Edinburgh Speech 工具 Visual Studio 2013
Posted
技术标签:
【中文标题】编译 Festival/Edinburgh Speech 工具 Visual Studio 2013【英文标题】:Compile Festival/Edinburgh Speech tools Visual Studio 2013 【发布时间】:2014-10-28 20:16:30 【问题描述】:Directions I found to compile
我已尝试使用 Visual Studio 2013 使用 Visual Studio 2013 从 Festvox latest 编译 Festival(自 2010 年以来没有更新)的说明来编译语音工具
nmake /nologo /FVCMakefile > output.txt
slib_doc.cc
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\math.h(423) : error C2988: unrecognizable template declaration/definition
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\math.h(423) : error C2059: syntax error : 'constant'
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\math.h(429) : error C2143: syntax error : missing ';' before ''
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\math.h(429) : error C2447: '' : missing function header (old-style formal list?)
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\cmath(96) : error C2039: 'isnan' : is not a member of '`global namespace''
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\cmath(96) : error C2873: 'isnan' : symbol cannot be used in a using-declaration
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\cmath(96) : error C2039: 'isnormal' : is not a member of '`global namespace''
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\cmath(96) : error C2873: 'isnormal' : symbol cannot be used in a using-declaration
尝试编译Festival
nmake /nologo /FVCMakefile > output.txt
festival.cc
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\math.h(423) : error C2988: unrecognizable template declaration/definition
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\math.h(423) : error C2059: syntax error : 'constant'
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\math.h(429) : error C2143: syntax error : missing ';' before ''
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\math.h(429) : error C2447: '' : missing function header (old-style formal list?)
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\cmath(96) : error C2039: 'isnan' : is not a member of '`global namespace''
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\cmath(96) : error C2873: 'isnan' : symbol cannot be used in a using-declaration
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\cmath(96) : error C2039: 'isnormal' : is not a member of '`global namespace''
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\cmath(96) : error C2873: 'isnormal' : symbol cannot be used in a using-declaration
我也尝试编译我在 Github 上找到的这个版本的语音工具。Github repo with speech tools 我收到很多错误,例如
speech-tools\include\EST_String.h(156) : error C2061: syntax error : identifier 'ssize_t'
我认为这应该在 Speech-tools\include\EST_system.h 中处理
# if defined(_MSC_VER)
# include <BaseTsd.h>
typedef SSIZE_T ssize_t;
# endif
我能够通过将它们替换为 size_t 来绕过 ssize_t 问题,这可能会在以后成为一个问题。
最终出现与上述类似的错误。
nmake /nologo /FVCMakefile > output.txt
slib_format.cc
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\math.h(423) : error C2988: unrecognizable template declaration/definition
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\math.h(423) : error C2059: syntax error : 'constant'
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\math.h(429) : error C2143: syntax error : missing ';' before ''
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\math.h(429) : error C2447: '' : missing function header (old-style formal list?)
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\cmath(96) : error C2039: 'isnan' : is not a member of '`global namespace''
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\cmath(96) : error C2873: 'isnan' : symbol cannot be used in a using-declaration
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\cmath(96) : error C2039: 'isnormal' : is not a member of '`global namespace''
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\cmath(96) : error C2873: 'isnormal' : symbol cannot be used in a using-declaration
(在编写所有这些内容时,我意识到所有编译它的尝试似乎都遇到了 math.h 和 cmath.h 的类似问题,但似乎来自不同的地方)
【问题讨论】:
slib_format.cc、festival.cc 和 slib_doc.cc 是似乎引发 math.h 和 cmath.h 问题的三个文件。 我想我将不得不使用其他东西,因为我也无法使用 Ubuntu 编译它。ssize_t
是一个有符号类型,类似于 size_t
是无符号的。通常,获得正确的标志比尺寸更重要,因此long long
通常可能是更好的替代品。 ssize_t
的直接 Windows 等效项是 INT_PTR
,它具有正确的符号和大小。
【参考方案1】:
您可以下载Festival的新版本(2.4):http://www.cstr.ed.ac.uk/projects/festival/download.html。
另外,要使用 VS 2013 构建它,请尝试在 Speech_tools 的 EST_defines_win32.h 中更改此行
#define isnan(N) 0
到
#if (_MSC_VER < 1800 ) // older than VS 2013
#define isnan(N) 0
#endif
【讨论】:
【参考方案2】:您没有按照说明中显示的步骤操作,这就是它不适合您的原因。
说明清楚地说明使用 cygwin 获取 GNU make 的副本,或使用 VS2005。它确实说 2006 年(以及之后的那些)不起作用....
为什么不直接按照 cygwin 路径编译呢?
【讨论】:
我有一个真正的 Windows 应用程序,我需要将它编译成这就是为什么我不能使用 Cygwin。我没有 VS 2005。 cygwin 不会阻止您使用真正的 Windows 应用程序。它使您能够使用 linux 兼容环境来构建将在 windows 下运行的东西。也看看mingw。以上是关于编译 Festival/Edinburgh Speech 工具 Visual Studio 2013的主要内容,如果未能解决你的问题,请参考以下文章
华为运营商级路由器配置示例 | 配置动态VPWS接入VPLS示例
流处理引擎(SPE)中的的分布式一致性语义之Exactly-Once和Effectively-Onece区别
华为运营商级路由器配置示例 | L3VdPdNdv4 HoVdPdNd over MPLS拼接SRv6 TE Policy