将 G.723.1 转换为普通 wav 和拆分通道?

Posted

技术标签:

【中文标题】将 G.723.1 转换为普通 wav 和拆分通道?【英文标题】:convert G.723.1 to normal wav and split channels? 【发布时间】:2018-05-01 09:31:09 【问题描述】:

我有一个 wav 文件,其信​​息是

ion@aurora:~/Inbound$ mediainfo 48401-3405-48403--18042018170000.wav 
General
Complete name                            : 48401-3405-48403--18042018170000.wav
Format                                   : Wave
File size                                : 327 KiB
Duration                                 : 4mn 11s
Overall bit rate                         : 10.7 Kbps

Audio
Format                                   : G.723.1
Codec ID                                 : A100
Duration                                 : 4mn 11s
Bit rate                                 : 10.7 Kbps
Channel(s)                               : 2 channels
Sampling rate                            : 8 000 Hz
Stream size                              : 327 KiB (100%)

这样的大胆表现

为了解决这个问题我试过了

ffmpeg -i 48401-3405-48403--18042018170000.wav  -f wav test.wav

但它只是在第一个频道的后面附加了第二个频道,所以我只得到一个频道。 它的媒体信息是: ion@aurora:~/Inbound$ mediainfo test.wav

General
Complete name                            : test.wav
Format                                   : Wave
File size                                : 7.67 MiB
Duration                                 : 8mn 22s
Overall bit rate mode                    : Constant
Overall bit rate                         : 128 Kbps
Writing application                      : Lavf56.40.101

Audio
Format                                   : PCM
Format settings, Endianness              : Little
Format settings, Sign                    : Signed
Codec ID                                 : 1
Duration                                 : 8mn 22s
Bit rate mode                            : Constant
Bit rate                                 : 128 Kbps
Channel(s)                               : 1 channel
Sampling rate                            : 8 000 Hz
Bit depth                                : 16 bits
Stream size                              : 7.67 MiB (100%)

知道如何解决这个问题吗?

PS:当我听到原始的wav文件时,感觉说话太快了。

处理后的文件的媒体信息应该是这样的。

ion@aurora:~/Downloads/Call Recordings$ mediainfo 9417648939\ \(G\ Call\)_Done.wav 
General
Complete name                            : 9417648939 (G Call)_Done.wav
Format                                   : Wave
File size                                : 8.01 MiB
Duration                                 : 8mn 44s
Overall bit rate mode                    : Constant
Overall bit rate                         : 128 Kbps

Audio
Format                                   : ADPCM
Format profile                           : U-Law
Codec ID                                 : 7
Codec ID/Hint                            : CCITT
Duration                                 : 8mn 44s
Bit rate mode                            : Constant
Bit rate                                 : 128 Kbps
Channel(s)                               : 2 channels
Sampling rate                            : 8 000 Hz
Bit depth                                : 8 bits
Stream size                              : 8.01 MiB (100%)

【问题讨论】:

上传ffmpeg命令的完整日志。 @Gyan 在这里找到日志link 如果你愿意,我也可以分享音频文件。 ffmpeg 将此文件视为单声道:Stream #0:0: Audio: g723_1 ([0][161][0][0] / 0xA100), 8000 Hz, mono, s16, 10 kb/s。哪个工具可以正确转换? 我不知道,所以我在这里问,我将如何转换这个音频文件。 【参考方案1】:

1) 来自 ubuntu (18.04) 存储库的 ffmpeg 有一个错误(ffmpeg 在 g723 中未检测到立体声通道)。使用来自 git 存储库的 FFmpeg https://github.com/FFmpeg/FFmpeg

git clone https://github.com/FFmpeg/FFmpeg
cd FFmpeg/ && ./configure --disable-x86asm && make

2) 现在您可以转换音频了:

FFmpeg/ffmpeg -i test.g723 test.wav

3) 和单独的频道:

FFmpeg/ffmpeg -i test.wav -filter_complex 'channelsplit=channel_layout=stereo[L][R]' -map '[L]' test.wav -map '[R]' test.wav

【讨论】:

以上是关于将 G.723.1 转换为普通 wav 和拆分通道?的主要内容,如果未能解决你的问题,请参考以下文章

gstreamer 将多通道 wav 文件拆分为单独的通道并将每个通道编码为 mp3、alac 等并保存到文件

使用 NAudio/Lame 将 .wav 转换为 mp3 时如何设置通道和采样率?

为啥将拆分为 wav 文件的旋律转换为拆分的 mp3 会在片段边界处产生不好的声音?

普通话识别,mp3格式转wav, 采样率转换48000转16000,多通道转单通道,运用百度API,短音频,python

python中的wave库:2个通道和2个样本宽度

如何使用流体合成器将单个 midi 通道导出为 wav?