知乎热榜 ( ) • 2024-04-12 18:59
麦文学的回答

现在的 LAME 已经可以实现 6:1 的压缩率。

5分钟的录音压缩成 MP3 大约是 1.6 MB。


时间其实也是成本。

俺试了一下,

一个五分钟的波形文件, 数到 100 还没有压缩完。

当然, 用 RTX3060 帮忙, 可以在 9 秒钟内压缩完成。

可是, 9 秒钟也还是太久了。




wx@dad5950:~/Downloads/tsac-2024-04-08$ ls -la 
total 275720
drwxrwxr-x.  2 wx wx     4096 Apr 11 22:25 .
drwxr-xr-x. 17 wx wx     4096 Apr 11 21:48 ..
-rw-rw-r--.  1 wx wx       31 Apr  8 05:47 Changelog
-rw-rw-r--.  1 wx wx 85143422 Apr  8 05:47 dac_mono_q8.bin
-rw-rw-r--.  1 wx wx 85407494 Apr  8 05:47 dac_stereo_q8.bin
-rwxrwxr-x.  1 wx wx  3979504 Apr  8 05:47 libnc_cuda.so
-rwxrwxr-x.  1 wx wx   565336 Apr  8 05:47 libnc.so
-rw-rw-r--.  1 wx wx     3040 Apr  8 05:47 readme.txt
-rw-r--r--.  1 wx wx  7399468 Apr 11 21:03 recording_2024-57-11_20h57m16s.wav
-rw-r--r--.  1 wx wx   115128 Apr 11 22:28 rec-test2.tsac
-rw-r--r--.  1 wx wx   115128 Apr 11 21:44 rec-test.tsac
-rwxrwxr-x.  1 wx wx   287536 Apr  8 05:47 tsac
-rw-rw-r--.  1 wx wx 49633561 Apr  8 05:47 tsac_mono_q8.bin
-rw-rw-r--.  1 wx wx 49639706 Apr  8 05:47 tsac_stereo_q8.bin



如果 tsac 的 api 好用,

俺会毫不犹豫地转向 tsac ,

而不是 lame 或者 libmp3lame.


https://bellard.org/tsac/


https://github.com/gypified/libmp3lame/blob/master/INSTALL


别误会, 俺经常用 FFMPEG, 包括 FFPLAY 。




TSAC 甚低比特率音频压缩
=======================================

TSAC 是一种音频压缩实用程序,可达到非常低的比特率,
如
单声道为 5.5 kb/s,立体声为 7.5 kb/s,
频率为 44.1 kHz,具有良好的感知质量。
因此,
TSAC 可将一首 3.5 分钟的立体声歌曲
压缩到 192 KiB 的文件。

TSAC 基于改进版的 Descript 音频编解码器和变换器模型,以进一步提高压缩率。
要快速运行,必须使用 GPU。
也支持仅使用 CPU,但速度较慢。
速度较慢。

1) 安装
---------------
为了获得合理的速度,您需要一个 
Nvidia Ampere、ADA 或
Hopper GPU(如 RTX 3090、RTX 4090、RTX A6000、A100 或 H100),
且 cuda >= 12.x。
PU 至少要有 4 GB 内存。

也支持 x86 CPU,但程序运行速度会慢很多。
CPU必须支持 AVX2 指令集才能运行该程序。

需要使用 FFmpeg 实用程序将输入文件转换为原始格式。


2) 使用方法
--------

要压缩音频文件,请使用
./tsac --cuda c myfile.mp3 myfile.tsac

解压缩
./tsac --cuda d myfile.tsac output.wav

删除"--cuda "选项可使用 CPU 而不是 GPU。

使用"-v "选项显示统计数据。
使用"-q "选项设置音质和比特率
(联合立体声从 1 到 12,否则从 1 到 9。

使用"-f "选项可加快压缩和解压缩速度,但会牺牲更高的比特率(变换器模式禁用)。

默认情况下,立体声文件使用联合立体声编码,以获得最高的压缩率。
以获得最高的压缩率。

-s "选项会禁用联合立体声编码,并对每个声道进行单独编码。

并对每个声道单独编码。

-c "选项可用于强制输入通道的数量。

TSAC 本机接受波形(.wav)或原始 16 位带符号小端序(.sw)文件作为输入。
采样率必须为 44.1 kHz。 

FFmpeg 可用于转换
输入文件格式、通道数和采样率。

3) 许可证
----------
Copyright (c) 2023-2024 Fabrice Bellard

特此免费向任何获取本软件及相关文档文件(以下简称 "本软件")副本的人授予许可。
本软件及相关文档文件(以下简称 "软件")的任何人,均可在不受限制的情况下免费使用本软件。
不受限制地处理本软件,包括但不限于以下权利使用、复制、修改、合并、出版、分发、再许可
和/或出售本软件的副本,以及允许他人使用、复制、修改、合并、出版、分发、再许可和/或出售本软件的副本。
或出售软件副本的权利,并允许获得本软件的人

使用、复制、修改、合并、出版、分发、再许可和/或出售本软件的副本,并允许获得本软件的人这样做,
但须符合以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或实质部分中。

本软件按 "原样 "提供,不作任何明示或暗示的保证。
包括但不限于适销性保证、软件 "按原样 "提供,不作任何明示或暗示的保证,
包括但不限于适销性、特定用途的适用性和非侵权保证。
在任何情况下,作者或版权所有者均不对由以下原因引起的任何索赔、损害或其他责任承担责任,
无论是合同诉讼、侵权诉讼还是其他诉讼、
或与本软件或本软件的使用或其他交易有关的任何索赔、损害赔偿或其他责任。