真人发音有一个语音包,里面按字母表顺序命名了26个英文单词首字母的文件夹。文件夹内以单词名称命名的mp3文件为对应文件名的发音。
词典想实现真人发音和机器发音的选择性发音。
因为真人发音所占空间太大,如果引入C#资源,软件发布后不方便下载传播。
所以我想做一个真人发音的包,单独下载导入。请问C#中如何实现?
10 个解决方案
#1
你可以用接口比如一个ISound接口实现实现真人发音和机器发音的选择性发音吧,在真人发音的包中包含一个dll以及语音包,导入的时候导入那个dll,在通过反射载入真人发音对接口ISound的实现类,这样就可以实现真人发音和机器发音的选择性发音的目的了。
#2
如何将音频做成dll导入,能否解释的再仔细些
#3
我也不知道
#4
我也不知道
#5
#6
如果是现成的mp3文件集, 怎么样变成dll导入程序中充当资源呢?
#7
关注
#8
我想lz你理解错了,这里所说的dll是干的是读取mp3文件集并发声的功能,而不是你想的那样将mp3打包成dll就可以发声了,如果你想打包,mp3文件也可以打包到dll作为一个资源的,可能是以二进制流的形式吧。
#9
恩。我想我需要的是这个 :)
mp3文件也可以打包到dll作为一个资源的,可能是以二进制流的形式吧。
请问具体如何实现呢?能详细说明一下吗?非常感谢。
mp3文件也可以打包到dll作为一个资源的,可能是以二进制流的形式吧。
请问具体如何实现呢?能详细说明一下吗?非常感谢。
#10
System.Reflection.Assembly r = Assembly.GetExecutingAssembly();
Stream temp=r.GetManifestResourceStream("命名空间.资源名");
orgbuffer = new byte[temp.Length];
temp.Read(orgbuffer,0,(int)temp.Length);
temp.Close();
以上是获得二进制流的方法,你应该有办法把这个二进制流转成mp3音频播放吧
Stream temp=r.GetManifestResourceStream("命名空间.资源名");
orgbuffer = new byte[temp.Length];
temp.Read(orgbuffer,0,(int)temp.Length);
temp.Close();
以上是获得二进制流的方法,你应该有办法把这个二进制流转成mp3音频播放吧
#1
你可以用接口比如一个ISound接口实现实现真人发音和机器发音的选择性发音吧,在真人发音的包中包含一个dll以及语音包,导入的时候导入那个dll,在通过反射载入真人发音对接口ISound的实现类,这样就可以实现真人发音和机器发音的选择性发音的目的了。
#2
如何将音频做成dll导入,能否解释的再仔细些
#3
我也不知道
#4
我也不知道
#5
通过SAPI SDK,也可使用控件实现
http://www.cnblogs.com/tiwlin/archive/2008/11/14/1246827.html
http://www.cnblogs.com/chuncn/archive/2009/02/19/1394304.html
http://www.cnblogs.com/tiwlin/archive/2008/11/14/1246827.html
http://www.cnblogs.com/chuncn/archive/2009/02/19/1394304.html
#6
如果是现成的mp3文件集, 怎么样变成dll导入程序中充当资源呢?
#7
关注
#8
我想lz你理解错了,这里所说的dll是干的是读取mp3文件集并发声的功能,而不是你想的那样将mp3打包成dll就可以发声了,如果你想打包,mp3文件也可以打包到dll作为一个资源的,可能是以二进制流的形式吧。
#9
恩。我想我需要的是这个 :)
mp3文件也可以打包到dll作为一个资源的,可能是以二进制流的形式吧。
请问具体如何实现呢?能详细说明一下吗?非常感谢。
mp3文件也可以打包到dll作为一个资源的,可能是以二进制流的形式吧。
请问具体如何实现呢?能详细说明一下吗?非常感谢。
#10
System.Reflection.Assembly r = Assembly.GetExecutingAssembly();
Stream temp=r.GetManifestResourceStream("命名空间.资源名");
orgbuffer = new byte[temp.Length];
temp.Read(orgbuffer,0,(int)temp.Length);
temp.Close();
以上是获得二进制流的方法,你应该有办法把这个二进制流转成mp3音频播放吧
Stream temp=r.GetManifestResourceStream("命名空间.资源名");
orgbuffer = new byte[temp.Length];
temp.Read(orgbuffer,0,(int)temp.Length);
temp.Close();
以上是获得二进制流的方法,你应该有办法把这个二进制流转成mp3音频播放吧