java版讯飞语音合成,目前只能生成pcm格式文件,在项目中需求pcm转wav
工具类
public class Pcm2Wave { public static void convertAudioFiles(String src, String target) throws Exception { FileInputStream fis = new FileInputStream(src); FileOutputStream fos = new FileOutputStream(target); //计算长度 byte[] buf = new byte[1024 * 4]; int size = fis.read(buf); int PCMSize = 0; while (size != -1) { PCMSize += size; size = fis.read(buf); } fis.close(); //填入参数,比特率等等。这里用的是16位单声道 8000 hz WaveHeader header = new WaveHeader(); //长度字段 = 内容的大小(PCMSize) + 头部字段的大小(不包括前面4字节的标识符RIFF以及fileLength本身的4字节) header.fileLength = PCMSize + (44 - 8); header.FmtHdrLeth = 16; header.BitsPerSample = 16; header.Channels = 1; header.FormatTag = 0x0001; header.SamplesPerSec = 16000;//8000; header.BlockAlign = (short)(header.Channels * header.BitsPerSample / 8); header.AvgBytesPerSec = header.BlockAlign * header.SamplesPerSec; header.DataHdrLeth = PCMSize; byte[] h = header.getHeader(); assert h.length == 44; //WAV标准,头部应该是44字节 //write header fos.write(h, 0, h.length); //write data stream fis = new FileInputStream(src); size = fis.read(buf); while (size != -1) { fos.write(buf, 0, size); size = fis.read(buf); } fis.close(); fos.close(); System.out.println("Convert OK!"); } }
public class WaveHeader { public final char fileID[] = {'R', 'I', 'F', 'F'}; public int fileLength; public char wavTag[] = {'W', 'A', 'V', 'E'};; public char FmtHdrID[] = {'f', 'm', 't', ' '}; public int FmtHdrLeth; public short FormatTag; public short Channels; public int SamplesPerSec; public int AvgBytesPerSec; public short BlockAlign; public short BitsPerSample; public char DataHdrID[] = {'d','a','t','a'}; public int DataHdrLeth; public byte[] getHeader() throws IOException { ByteArrayOutputStream bos = new ByteArrayOutputStream(); WriteChar(bos, fileID); WriteInt(bos, fileLength); WriteChar(bos, wavTag); WriteChar(bos, FmtHdrID); WriteInt(bos,FmtHdrLeth); WriteShort(bos,FormatTag); WriteShort(bos,Channels); WriteInt(bos,SamplesPerSec); WriteInt(bos,AvgBytesPerSec); WriteShort(bos,BlockAlign); WriteShort(bos,BitsPerSample); WriteChar(bos,DataHdrID); WriteInt(bos,DataHdrLeth); bos.flush(); byte[] r = bos.toByteArray(); bos.close(); return r; } private void WriteShort(ByteArrayOutputStream bos, int s) throws IOException { byte[] mybyte = new byte[2]; mybyte[1] =(byte)( (s << 16) >> 24 ); mybyte[0] =(byte)( (s << 24) >> 24 ); bos.write(mybyte); } private void WriteInt(ByteArrayOutputStream bos, int n) throws IOException { byte[] buf = new byte[4]; buf[3] =(byte)( n >> 24 ); buf[2] =(byte)( (n << 8) >> 24 ); buf[1] =(byte)( (n << 16) >> 24 ); buf[0] =(byte)( (n << 24) >> 24 ); bos.write(buf); } private void WriteChar(ByteArrayOutputStream bos, char[] id) { for (int i=0; i<id.length; i++) { char c = id[i]; bos.write(c); } } }
相关推荐
讯飞语音合成demo maven
音频文件PCM转WAV格式转换类 Utils类 直接可以使用有现成DEMO。感谢评论 音频文件PCM转WAV格式转换类 Utils类
支持将PCM格式数据转换成多通道wav文件格式数据,PCM数据默认是S16_LE格式,可支持选择通道数以及采样频率,使用方法PCM2WAV -d dump.pcm -c 8 -f 16000 -o dump.wav
PCM与WAV互转 源代码 亲测有效 欢迎使用
讯飞语音,识别真的很准确。 讯飞语音转写,实时的贵,不实时的慢。。。 今天尝试了用讯飞听写通过流的方式实现实时转写。 主要思路是这样。首先确认pcm文件的保存路径。 然后创建一个线程不断读写pcm内的内容...
该程序能够实现将语音文件的pcm格式转换成wav格式,并且能将wav格式文件转换成pcm格式,简单易懂。
很好的解决语音合成和格式问题
百度AI语音接口语音文件pcm、wav、arm、m4a,PHP语言亲测可用, D:\phpStudy\PHPTutorial\WWW\baidusdk\index.php:16: array (size=5) 'corpus_no' => string '6826205053186135329' (length=19) 'err_msg' => ...
java源码 pcm 转wav,方法参数为pcm文件路径,wav文件路径,可以直接使用。
android播放pcm文件,并且将pcm文件转wav文件的工具类。传入文件路径可以直接调用。
本工程是通过录音写成pcm文件,然后再将pcm文件转华为wav,这个wav文件,可以wav,文件可以正常播放哦。
1、Java实现wav音频文件转换为pcm音频文件(AudioUtils.java) 2、Java实现播放pcm音频文件(PCMPlay.java) WAV:wav是一种无损的音频文件格式,WAV符合 PIFF(Resource Interchange File Format)规范。所有的WAV都...
说明:本源码只提供了生成 文件头 的函数,只返回文件...),如果将pcm转成wav,请参考下面公式。WAV字节集 = 文件头字节集+PCM字节集 。让我们一起来观赏一下pcm变成wav的过程吧!。文件头:。@wly。Tags:音频文件。
讯飞语音识别使用的pcm文件,其他的下载都太费c币了,如果没c币,私信我留邮箱发!
讯飞语音识别以及语音合成demo,自己写的例子,需要的jar包都放进去了。默认是pcm格式,我写了个转换方法改成了mav格式
ios录音播放,包括录取的PCM转WAV播放
PHP开发版,将音频PCM格式转WAV格式。场景:IOS 录音文件有些是PCM格式,在手机端播放可以,但是WEB端无法播放,可以借助PHP转码实现播放
微信小程序语音识别,转成一般各大接口所用的wav格式,有的语音接口可以使用pcm,不过听别人所建议转成wav的更好识别,这里面的是不需要安装操作的ffmpeg.exe和silk_v3_decoder.exe文件,所以应该都可以使用,比如...
pcm2wav(PCM转换成WAV文件).rar
一个简单的pcm 转换 wav的音频转换工具类,需要java开发环境