在java中,pcm格式转换器语音文件怎么转换成MP3或者AMR格式?

微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式的评论
#1 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
照片刻录DVD光盘
#2 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
漂亮女网友
#3 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
迅雷看看XV格式转换
#4 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
视频刻录DVD光盘
#5 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
xv视频提取器
#6 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
视频合并软件 多个视频加片头(好玩)
#7 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
多个pdf合并
#8 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
怎么刻录UDF光盘
#9 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
车上,发现一小偷用镊子偷女友的包,我不做声,按住女友的包把她搂在怀里,狠狠的瞪了小偷 一眼。下车后,发现那个小偷一直跟在我们后面,以为他要报复。又过了很久,他还跟着,我实在忍不住 了,就停下来问他,你跟着我们到底要干嘛?小偷讪讪的说:“大哥,不好意思,镊子掉你对象包里了… ”
#10 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
制作照片的软件在哪里下载呢?:
#11 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
梦幻森林系列PPT背景图片:
#12 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
多个pdf合并
#13 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
pptv加速器
#14 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
有我有一同事,严肃的时候挺像那么回事的。一天出去吃饭,去店里一看,人蛮多的,看见一桌上坐一个人,他就走过去说:你,让一下。那个人看看他,默默的走了。一会另一个同事讲:要不咱去那边,有风扇,然后就见他走到那边,对之前的那个人讲,叫他让开。那个人急了,说:大哥,我到底坐哪,我也是来吃饭的。后来问,那天好厉害,他说,我以为那个人是服务员…… 
#15 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
视频加背景音乐软件 怎么给视频加背景音乐 也支持视频音频剥离功能:
#16 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
swf转换fla 如何将swf转换成fla:
#17 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
照片的人像换发型(恶搞)
#18 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
flash转换avi 怎么把flash转换成avi格式:
#19 楼 回复:微信Aud格式转换器 微信语音Aud转Amr aud转mp3格式
从视频中提取音频 怎样提取视频中的音频:
你还不是该群组正式成员,不能参与微信格式转换器讨论。手机AMR音频文件如何改变其他格式?_百度知道
手机AMR音频文件如何改变其他格式?
ULAW等常见的音频格式之间的转换, ULAW等声音格式之间按不同的设置进行相互转换, AC3, G729.baidu, G729, G723.html" target="_blank">http。 主要特点, AAC, ALAW, MP3, G723, OGG; 支持ID3标签显示和编辑, VOX.html 天天音频转换专家』是一款专业的音频转换工具, GSM, AC3, WAV( PCM。 支持MP2, G726, WMA, ALAW; 支持批量音频文件转换; 支持同一种音频格式在不同压缩率下的转换://zhidao,非常易于使用, WMA, OGG, G726://zhidao, MP3。 可以批量转换文件而不必理会它们的源文件格式和目标文件格式, G721, DSP, G721, GSM, AAC, ADPCM), AMR。 内置播放器支持多种格式的播放功能, /question/7407049, WAV( PCM; 用户界面友好, VOX: ★在/question/7407049.baidu<a href="http; 支持3G音频格式--AMR; 内置播放器支持流行的音乐格式播放, ADPCM )
其他类似问题
音频文件的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁好评:88.83%
坏评:11.17%
微信语音聊天记录转换工具,可以把微信保存语音聊天记录的AUD文件转换成MP3或AMR格式的音频文件,方便播放。本工具的工作流程并不是直接把AUD转换成MP3,而是先将AUD转换成AMR,再把AMR文件转换成MP3。
使用方法:
直接点浏览或者直接将aud文件拖放到此工具上面,即可开始转换格式
为了大家更快的上手下面给大家做个图文教程:
微信Aud音频转mp3/Amr V1.0 中文绿色免费版
软件排行榜
热门关键字编辑推荐18
注册时间日
实战经典:QQ语音格式文件转存为MP3
选择浏览模式:
故事模式 |
QQ语音文件为amr格式文件,默认保存在QQ安装文件夹中,可以复制保存,并用暴风影音等软件打开收听,配合录音机程序可以另存为WAV格式,再转换为MP3格式。
如果你是好看簿的用户,请以大图方式来查看故事。
如果你还不是好看簿的用户,只需,然后登录好看簿,再刷新本页面即可以大图方式来查看故事。
&&&&一、QQ语音文件。&&&&QQ语音文件为amr格式文件,默认保存在QQ安装文件夹中,如图所示的audio子文件夹里,可以复制保存,并用暴风影音等软件打开收听。&&&&二、录音机收存。&&&&amr转换mp3方法:1、打开windows自带的录音机软件; 2、打开暴风影音播放amr文件; 3、录音机软件录音; 4、文件播放完毕的同时停止录音;5、录音机软件,文件菜单,保存录音为WAV格式。 再转换为MP3文件就很简单了。
如果你是好看簿的用户,请以大图方式来查看故事。
如果你还不是好看簿的用户,只需,然后登录好看簿,再刷新本页面即可以大图方式来查看故事。
三、AMR Player软件。&&&&是一种应用程序使用户能够转换AMR文件。使用AMR播放器非常简单,点击“添加文件”按钮在主界面中,选择之一“amr”文件,然后点击“播放”按钮,该公司播放器可以解码的AMR音频文件,然后播放音频/音乐为你。如果你想AMR转换成MP3格式,只需选择一个AMR文件,你增加了,点击“ AMR到MP3 ” ,输入一个MP3文件名称,免费程序可以转换您的AMR文件一次。(软件下载:)
创建时间:
最后更新:
图片数量:2
阅读次数:0
收藏次数:0
您的IE浏览器的版本过低,低版本的浏览器在处理javascript文件时存在问题,无法支持Ajax功能,全面使用好看簿,IE浏览器的版本至少为6.0SP2,请使用。PS:博主开了微博了~详情猛戳:
wp系统中默认的给出的是WAV格式的音频,当然无论是用来存储还是与网络交互都显得过大了,不过在p7中只能是用c#进行处理,所以通常会将其保存为Amr格式比如QQ又或者是使用Speex进行编码然后打包成OGG,
鉴于Wp8中开放了Native Code,所以我们可以考虑性价比更高的格式如AAC或者MP3格式。
1.使用AAC格式
wp8在winPRT中新加入了AudioVideoCaptureDevice类,通过这个类我们可以录制音频或者视频,但是因为是在prt中而不是。net类库,所以在使用的时候可能会有些限制。
首先我们来看看录音的使用方法。
首先在构造函数中来初始化AudioVideoCaptureDevice类的一些设置,当然初始化的时机需要根据不同的应用场景来区分,这里暂时写在页面的构造函数里
private AudioVideoCaptureDevice AVCaptureD
private IRandomAccessStream I private string
public MainPage()
  InitializeComponent();
   init();
private async void init()
AVCaptureDevice= await AudioVideoCaptureDevice.OpenForAudioOnlyAsync();
AVCaptureDevice.AudioEncodingFormat = CameraCaptureAudioFormat.A
CameraCaptureAudioFormat是一个枚举值,有Aac,Amr,None,Pcm四种格式,当然不可能有Mp3,毕竟是收费格式~下面我们来看录音函数:我们需要使用AudioVideoCaptureDevice的的IAsyncAction StartRecordingToStreamAsync(IRandomAccessStream stream)方法,毕竟是PRT的类,所以使用IRandomAccessStream来做参数也无可厚非,WP8中各种流之间的转换是一个比较让人反胃的东西,不过习惯了就好了,下面我们来看一下录音的Record函数:
private async void Record(string fileName="sandcu")
StorageFile storageFile=null;
StorageFolder localFolder = ApplicationData.Current.LocalF
IsolatedStorageFile isStore = IsolatedStorageFile.GetUserStoreForApplication();
if (isStore.FileExists(localFolder.Path + "\\"+fileName+".aac"))
storageFile = await localFolder.GetFileAsync(fileName+".aac");
storageFile = storageFile ?? await localFolder.CreateFileAsync(fileName+".aac", CreationCollisionOption.ReplaceExisting);
path = storageFile.P
if (storageFile != null)
Iras= await storageFile.OpenAsync(FileAccessMode.ReadWrite);
await AVCaptureDevice.StartRecordingToStreamAsync(Iras);
由于StorageFile 的OpenAsync方法可以很方便的返回一个IRandomAccessStream流所以我们暂且在根目录下创建这样一个临时文件存储流,这样录音之后转存的Aac文件流会直接写入文件中。
紧接着是停止录音的方法StopRecord。很简单~停止,然后释放流。
private async void StopRecord()
await AVCaptureDevice.StopRecordingAsync();
Iras.AsStream().Dispose();
为了测试我们是否成功的录音了,可以播放一下看看:
private void Play()
new MediaPlayerLauncher()
Media = new Uri(path, UriKind.Relative),
&如果程序结束后不需要AudioVideoCaptureDevice了 记得Dispose掉;
&2.使用AMR格式
把init中的AVCaptureDevice.AudioEncodingFormat = CameraCaptureAudioFormat.A &改为&AVCaptureDevice.AudioEncodingFormat =&CameraCaptureAudioFormat.A就好......
3.使用MP3格式
这个会比较麻烦,目前使用最广的MP3编码器当然是Lame~详见&http://lame.sourceforge.net/download.php,打不开的自觉FQ,不过在wp8上使用lame略微有点麻烦,而且比较容易出错。
在wp8中使用native库有两种方式,一是使用dll二是使用lib,但是我们不能直接在c#中使用库,所以需要用C++/CX包一层,至于如何包这一层网上有很多方法,详情请google一下,在这里我们使用Lib的静态方式来调用Lame。
首先下载lame的源代码,然后找到他的vc_solution文件夹,这里我们需要的是vc9_lame.sln这个解决方案,而最终对我们有用的是libmp3lame-static和libmpghip-static这两个工程,其他可以先remove掉,然后直接编译就好,这里需要注意的是如果你使用模拟器调试,那么实际上需要的是win32的lib,而如果你使用真机调试,那么需要的则是Arm的lib,这也就是问什么同样的工程在模拟器下可用而在真机时则崩溃。
编译,然后我们拿到libmpghip-static.lib和libmp3lame-static.lib两个库,然后将他们引入我们自己的wp8 project中。记得Include进来lame.h
在不同的Platform下都要设置,比如Arm的就要引用Arm的文件夹,win32的则用win32的lib
接着我们需要建立一个windows phone 组件来包装lib,起名就叫audio好了,下面就是audio工程设置的大概属性
设定完lib所在的路径后则记得在链接中加入库的引用,同样也要区分平台
准备工作做完后建立两个filter一个是include一个是source,当然不建立也没有任何问题
然后我们建立两个类,一个是包装类叫做LameWrapper,另一个是CompressedMp3Content用作返回值,这两个类都是C++/CX的类,并且要被C#使用,所以注意这两个类必须是Public ref class并且是sealed的并且不能有public的析构函数,烦吧~~~
我们来看LameWrapper.h的定义
public ref class LameWrapper sealed
LameWrapper();
IAsyncOperation&CompressedMp3Content^&^ EncodePcm2Mp3(IBuffer^ inPcm, int sampleRate, int channels);
然后是用作返回值的CompressedMp3Content类的定义
public ref class CompressedMp3Content sealed
CompressedMp3Content(void);
property Platform::Array&unsigned char&^ Mp3D
接下来是压缩MP3的重头戏~LameWrapper.CPP
首先Include &Lame.h&
然后来看一下EncodePcm2Mp3方法:
Windows::Foundation::IAsyncOperation&CompressedMp3Content^&^ LameWrapper::EncodePcm2Mp3(IBuffer^ inPcm, int sampleRate, int channels)
lame_global_flags* lame = lame_init();
lame_set_in_samplerate(lame, sampleRate);
lame_set_num_channels(lame, channels);
lame_set_quality(lame, 5);
lame_init_params(lame);
IUnknown* pUnk = reinterpret_cast&IUnknown*&(inPcm);
IBufferByteAccess* pAccess = NULL;
byte* bytes = NULL;
HRESULT hr = pUnk-&QueryInterface(__uuidof(IBufferByteAccess), (void**)&pAccess);
if (SUCCEEDED(hr))
hr = pAccess-&Buffer(&bytes);
if (SUCCEEDED(hr))
return Concurrency::create_async([=]()-&CompressedMp3Content^
CompressedMp3Content^ result = ref new CompressedMp3Content();
int pcmLength = inPcm-&L
///TODO:此处直接获取了pcmLength的一半,在pcmLength为奇数的时候会丢掉最后一个字节~不过无所谓了......
std::vector&short& inBuffer = std::vector&short&(pcmLength / 2);
for (std::vector&short&::size_type i=0; i&inBuffer.size(); i++)
inBuffer[i] = (((short)bytes[i*2+1]) && 8) + bytes[i*2];
std::vector&byte& outBuffer(inPcm-&Length);
int size = lame_encode_buffer(lame, inBuffer.data(), inBuffer.data(), inBuffer.size(), outBuffer.data(), 0);
if (size & 0)
result-&Mp3Data = ref new Platform::Array&unsigned char&(size);
for(int i=0; i& i++)
(result-&Mp3Data)-&get(i) = outBuffer[i];
lame_close(lame);
pAccess-&Release();
lame_close(lame);
pAccess-&Release();
throw ref new Platform::Exception(hr, L"Couldn't get bytes from the buffer");
lame_close(lame);
throw ref new Platform::Exception(hr, L"Couldn't access the buffer");
先设置所需参数,通常我们录下来只有一个声道了,所以channels给个1好了,当然左右声道都给同一个PCM buffer就变成双声道了也可以,lame_set_quality时有0~9个阶段的质量可选,取中就好,设的太高压缩会很慢,接下来开始process传进来的buffer,为了方便我们给进来的是byte数组,而lame要的是short数组,所以我们要先将byte*转换为short*转换完成之后直接调用lame_encode_buffer来进行转换吧,转换完成后会返回实际的字节数,然后我们将转好的byte*放入CompressedMp3Content类中以供c#进行进一步处理,然后记得release all~~~~~
回到c#这一侧,当然要引用我们的audio工程,在C#这一侧我们先要拿到pcm流,不知道为什么使用之前提到的AudioVideoCaptureDevice录制PCM会崩溃,所以我们还是使用传统的xna下的Microphone来录制pcm流,
录制完成后就很简单了new出一个LameWrapper后直接调用EncodePCM2Mp3就好了~
LameWrapper lame = new LameWrapper();
CompressedMp3Content item = await lame.EncodePcm2Mp3(buffer, MicrophoneWrapper.Instance.SampleRate, 1);
&附件1:录制AAC的
附件2:录制MP3的,稍后再传......
大功告成~呼~
PS:博主开了微博了~详情猛戳:
阅读(...) 评论()}

我要回帖

更多关于 amr格式转换mp3 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信