问题标签 [mu-law]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
436 浏览

c# - 如何在 C# 中将 Opus 编解码器转码为 G.711 编解码器

我目前正在使用 Mumble VoIP 1.2.X 服务器-客户端通信协议。我的工作是创建一个桌面客户端,客户端与服务器连接并接收其他客户端的音频流。我在 opus 编解码器中接收流。我可以对其进行解码,也可以使用 NAudio 库进行播放。现在我需要将 opus 编解码器流转码为 G.711 ulaw 编解码器。这样,我可以使用 UDP 在多播广播频道中播放转码流。

0 投票
0 回答
509 浏览

android - 在 Android 中使用“ulaw”编码生成 .wav 音频文件

我正在尝试从原始 pcm 数据生成具有 ulaw 编码的 wav 文件。我已经通过在谷歌和这里找到了一些解决方案,但我似乎无法让音频很好地播放。它的嘈杂和筛选的声音。可能是音频播放太快,不确定。

所以,这是我迄今为止尝试过的代码。

我有我的 AudioRecorder.java,它记录了数据并将其保存为原始 pcm 文件,将原始 pcm 数据转换为 ulaw 编码数据,创建 wav 标头,然后将数据流合并并保存为一个 .wav 文件

我有 AudioFileUtils.java,它只提供要保存的扩展名的路径和附加

我正在使用 UlawEncoderInputStream.java,我在这里找到了它并对其进行了一些更改,可以在下面找到

在做完这一切之后,正如我所说的那样,声音太刺耳和嘈杂。不知道我错在哪里。

任何帮助,不胜感激!先感谢您。

0 投票
1 回答
337 浏览

sip - 如何将 WebRTC 音频从 Kurento 发送到 Avaya 手机

我成功地使用 Kurento 的RtpEndpoint类型连接到多个 Asterisk SIP 服务器以及直接连接到多个型号的 SIP 电话,但是与 Avaya SIP 服务器的连接不起作用,我试图找出原因。症状是已建立连接但没有媒体。

对于 RTP 端点,Kurento 生成以下 SDP(我将其包含公共 IP 地址并删除视频部分),然后将其包含在 SIP 中INVITE

与 Asterisk 服务器的工作连接将以下 SDP 返回给 Kurento:

在 Kurento 日志中,我看到它说它正在转码此连接。

与 Avaya 服务器的非工作连接将以下 SDP 返回给 Kurento:

如您所见,Avaya 服务器响应它不能使用任何可用的编解码器,因此不会发送或接收媒体 ( a=inactive)。

根据我发现的一些 Avaya 文档,Avaya SBCE 至少支持以下编解码器的转码:

  • OPUS 12kbps 窄带
  • OPUS 16kbps 窄带
  • OPUS 18kbps 宽带
  • G.722
  • G.711法律
  • G.711法律
  • G.726
  • G.729AB

Kurento 支持使用 PCMU(又名 G.711ulaw),如工作 Asterisk 示例中所示,但 Avaya 似乎拒绝它。(注意:我以前认为它不包含在 SDP 中,但它确实存在0m=audio行中。)我试图让它强制使用 PCMU using rtpEndpoint.setAudioFormat(AudioCaps(AudioCodec.PCMU, 8000)),但这没有帮助。

我的第二个想法是使用rtpEndpoint.setAudioFormat(AudioCaps(AudioCodec.OPUS, 18000)). 当我尝试这个时,它不仅不能在 Avaya 手机上工作,而且由于 Asterisk 使用 PCMU,它也停止了与 Asterisk 的工作。我想过修改 SDP 以将其更改为opus/18000,但这是不允许的,因为RFC 7587明确指出:


媒体子类型(“opus”)作为编码名称进入 SDP“a=rtpmap” 。"a=rtpmap" 中的 RTP 时钟速率必须为 48000,
通道数必须为 2。

如何让 Kurento 和 Avaya SBCE 在它们之间发送媒体?

0 投票
2 回答
898 浏览

node.js - 将 LINEAR16 音频编码为 Twilio 媒体音频/x-mulaw | 节点JS

我一直在尝试将 mulaw 媒体流传输回 Twilio。要求是有效载荷必须以 8000 的采样率和 base64 编码的音频/x-mulaw 编码

我的输入来自 LINEAR16 Google Docs中的@google-cloud/text-to-speech

我试过Wavefile

这就是我对来自@google-cloud/text-to-speech 的响应进行编码的方式

然后我通过 websocket 将结果发送回 twilio

问题是我们只在 twilio 调用的另一端出现随机噪声,似乎编码不正确

其次,我通过保存在文件中检查了@google-cloud/text-to-speech 输出音频,它正确且清晰

谁能帮我编码

0 投票
2 回答
318 浏览

stream - 如何使用 twilio 双向流功能播放原始音频数据

我正在使用 Twilio 可编程语音来处理电话。

我想使用双向流功能发送一些原始音频数据以通过 twilio 播放,初始化代码如下所示,

然后当从 twilio 获得 wss 连接时,我开始向 twilio 发送原始音频数据,就像这样

test.wavaudio/x-mulaw是一个以 8000 的采样率编码的 wav 文件。

但是运行时,我什么也听不见,在 twilio 控制台上,它说

我不知道哪一部分是错的。有谁知道我的问题是什么?我找不到有关此场景的示例,只需按照此处的说明进行操作,如果有人知道有关此示例的示例,我将不胜感激,谢谢。

0 投票
1 回答
76 浏览

ios - 我想从 iphone 麦克风录制并转换为 ulaw 格式的流媒体

我想从 iphone 麦克风录制并转换为 ulaw 格式的流数据,我猜那是 pcm 数据,但我有噪音。

installTap buff是什么音频格式?如何获得 ulaw 数据格式?我可以从 AVAudioRecorder 得到它,但我不会得到一个文件。更改格式设置 'AVFormatIDKey=kAudioFormatULaw' 会崩溃。

和连接是:

0 投票
3 回答
85 浏览

python-3.x - 当 Twilio 呼叫连接时说“你好”

我在 python Flask 中有一个 websocket,可以监听 twilio 调用。当通话开始时,我想说“你好”这是代码。

但上述方法不起作用。我检查了微软认知服务语音 sunthesizer 返回 WAV 格式的字节,所以我使用了lin2ulaw表单 pythonaudioop模块。

需要帮忙。提前致谢。

0 投票
1 回答
170 浏览

javascript - reactjs如何将ulaw格式文件转换为wav格式

我正在尝试在 reactjs 中播放 .ulaw 格式,但没有找到任何直接播放 ulaw 文件的方法。所以我尝试使用 wavfile 插件将 ulaw 格式转换为 wav。但转换后它播放不同的噪音,我无法确定实际错误在哪里。

ulaw文件详细信息:

采样率 8000

比特率 64

单声道

0 投票
0 回答
31 浏览

java - Java 将 MP3 音频输入流转换为 µ-law

我有一个 MP3 音频文件,我必须将其转换为 µ-law (8000/mulaw) base64 编码字符串。我尝试了不同的方法,但我无法做到这一点。但从一开始:

基于 mp3spi,我们可以将 MP3-File 读取到 AudioInputStream

这是我尝试使用的代码:

不幸的是,生成的结果不适用于目标系统。目标系统本身正在工作,如果我只使用波形文件,一切都很好。

有人有解决方案吗?

问候托马斯

0 投票
0 回答
29 浏览

ios - 将流式 u-law 转换为 PCM 听起来很金属

我有一个语音流应用程序,它通过 websocket 接收实时音频,编码为 G.711 u-law 8KHz 单声道,我想使用AVAudioEngine.

为此,我将音频样本转换为具有相同采样率和音频参数的 PCM (Float32),使用AVAudioConverter.

出于某种原因,我听到的声音是金属的和回声的。

这是我的代码:

func convertAudio(data: Data)每次我从 websocket 接收音频数据时都会调用它。

我想知道我用于转换音频的代码是否不正确,或者是否有更好的解决方案来解决这个问题,并希望得到任何建议。