通過lame 進(jìn)行音頻格式轉(zhuǎn)化

背景

因?yàn)樯弦黄纛l合成中遇到了一個(gè)問題,合成工具不支持wav音頻格式轉(zhuǎn)化,而且錄音所得的wav格式 是無損的格式拄查,標(biāo)準(zhǔn)的wav采樣率為44100Hz,也是CD標(biāo)準(zhǔn)格式棚蓄;mp3屬于有損壓縮文件堕扶,不過體積小碍脏,便于保存。
lame 下載下來不能直接用

依賴的東西 :

lame庫下載地址
lame 靜態(tài)庫打包工具地址

操作步驟:

  • 把下載的lame和build-lame.sh放在一個(gè)文件夾下

注意 # build-lame.sh 中 #directories SOURCE="lame"
這里lame是來源文件名

  • 在創(chuàng)建的目錄下執(zhí)行 bulid 腳本
sudo ./build-lame.sh
  • 下面 fat-lame 中就是我們想要的東西稍算,將.a 文件和.h文件放入項(xiàng)目即可


    屏幕快照 2019-04-28 上午11.02.30.png
  • wav 轉(zhuǎn)map3 相關(guān)代碼

#define AUDIOCACHE @"音頻存放目錄"
文件管理
#define FILEMANAGER [NSFileManager defaultManager]

- (NSString *)documentPath
{
    NSString *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject;
    return documentPath;
}

- (NSString *)audioCacheFolder
{
    NSString *audioFolder = [[self documentPath] stringByAppendingPathComponent:AUDIOCACHE];
    if (![FILEMANAGER fileExistsAtPath:audioFolder]) {
        NSError *error = nil;
        [FILEMANAGER createDirectoryAtPath:audioFolder withIntermediateDirectories:YES attributes:nil error:&error];
        if (error) {
            NSLog(@"音頻文件夾創(chuàng)建失敗----%@", error);
        }
    }

    return audioFolder;
}
//用url作為文件名
- (NSString *)audioFilePath:(NSString *)audioURL
{
    NSString *fileName = [audioURL stringByReplacingOccurrencesOfString:@"/" withString:@"-"];
    return [[self audioCacheFolder] stringByAppendingPathComponent:fileName];
}

//轉(zhuǎn)化方法
- (NSString *)audioPCMtoMP3:(NSString *)wavPath {
    NSString *cafFilePath = wavPath;
    NSString *mp3FilePath = [self audioFilePath];
    if([FILEMANAGER removeItemAtPath:mp3FilePath error:nil]){ NSLog(@"刪除原MP3文件");
        
    }
    @try
    {
        int read, write;
        FILE *pcm = fopen([cafFilePath cStringUsingEncoding:1], "rb");
        //source 被轉(zhuǎn)換的音頻文件位置
        fseek(pcm, 4*1024, SEEK_CUR);
        //skip file header
        FILE *mp3 = fopen([mp3FilePath cStringUsingEncoding:1], "wb");
        //output 輸出生成的Mp3文件位置
        const int PCM_SIZE = 8192;
        const int MP3_SIZE = 8192;
        short int pcm_buffer[PCM_SIZE*2];
        unsigned char mp3_buffer[MP3_SIZE];
        lame_t lame = lame_init();
        //        lame_set_in_samplerate(lame, 22050.0);
        lame_set_in_samplerate(lame, 4000.0);
        lame_set_VBR(lame, vbr_default); lame_init_params(lame);
        do {
            read = fread(pcm_buffer, 2*sizeof(short int), PCM_SIZE, pcm);
            if (read == 0) write = lame_encode_flush(lame, mp3_buffer, MP3_SIZE);
            else write = lame_encode_buffer_interleaved(lame, pcm_buffer, read, mp3_buffer, MP3_SIZE);
            fwrite(mp3_buffer, write, 1, mp3);
            
        }while (read != 0);
        lame_close(lame);
        fclose(mp3);
        fclose(pcm);
        
    } @catch (NSException *exception) {
        NSLog(@"%@",[exception description]);
        return @"";
    } @finally {
        return mp3FilePath;
        
    }
    
}

refer : http://www.reibang.com/p/864a9fbaa79e

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末典尾,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子糊探,更是在濱河造成了極大的恐慌钾埂,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件科平,死亡現(xiàn)場離奇詭異褥紫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)瞪慧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進(jìn)店門髓考,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人弃酌,你說我怎么就攤上這事氨菇。” “怎么了妓湘?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵查蓉,是天一觀的道長。 經(jīng)常有香客問我多柑,道長奶是,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任竣灌,我火速辦了婚禮聂沙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘初嘹。我一直安慰自己及汉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布屯烦。 她就那樣靜靜地躺著坷随,像睡著了一般。 火紅的嫁衣襯著肌膚如雪驻龟。 梳的紋絲不亂的頭發(fā)上温眉,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天,我揣著相機(jī)與錄音翁狐,去河邊找鬼类溢。 笑死,一個(gè)胖子當(dāng)著我的面吹牛露懒,可吹牛的內(nèi)容都是我干的闯冷。 我是一名探鬼主播砂心,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蛇耀!你這毒婦竟也來了辩诞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤纺涤,失蹤者是張志新(化名)和其女友劉穎译暂,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洒琢,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡秧秉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年褐桌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了衰抑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,561評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡荧嵌,死狀恐怖呛踊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啦撮,我是刑警寧澤谭网,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站赃春,受9級特大地震影響愉择,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜织中,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一锥涕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧狭吼,春花似錦层坠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疲吸,卻和暖如春座每,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背摘悴。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工峭梳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人烦租。 一個(gè)月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓延赌,卻偏偏與公主長得像除盏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子挫以,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評論 2 359