VoiceConverter.mm 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //
  2. // VoiceConverter.m
  3. // Jeans
  4. //
  5. // Created by Jeans Huang on 12-7-22.
  6. // Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
  7. //
  8. #import "VoiceConverter.h"
  9. #import "wav.h"
  10. #import "interf_dec.h"
  11. #import "dec_if.h"
  12. #import "interf_enc.h"
  13. #import "amrFileCodec.h"
  14. @implementation VoiceConverter
  15. + (NSString *)amrToWav:(NSString*)filePath{
  16. NSString *savePath = [filePath stringByReplacingOccurrencesOfString:@".amr" withString:@".wav"];
  17. if (! DecodeAMRFileToWAVEFile([filePath cStringUsingEncoding:NSASCIIStringEncoding], [savePath cStringUsingEncoding:NSASCIIStringEncoding]))
  18. return nil;
  19. return savePath;
  20. }
  21. + (NSString *)wavToAmr:(NSString *)filePath{
  22. // WAVE音频采样频率是8khz
  23. // 音频样本单元数 = 8000*0.02 = 160 (由采样频率决定)
  24. // 声道数 1 : 160
  25. // 2 : 160*2 = 320
  26. // bps决定样本(sample)大小
  27. // bps = 8 --> 8位 unsigned char
  28. // 16 --> 16位 unsigned short
  29. NSString *savePath = [filePath stringByReplacingOccurrencesOfString:@".wav" withString:@".amr"];
  30. NSLog(@"预期存储路径:%@",savePath);
  31. if (EncodeWAVEFileToAMRFile([filePath cStringUsingEncoding:NSASCIIStringEncoding], [savePath cStringUsingEncoding:NSASCIIStringEncoding], 1, 16))
  32. return savePath;
  33. return nil;
  34. }
  35. @end