问题标签 [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.
c# - 如何在 C# 中将 Opus 编解码器转码为 G.711 编解码器
我目前正在使用 Mumble VoIP 1.2.X 服务器-客户端通信协议。我的工作是创建一个桌面客户端,客户端与服务器连接并接收其他客户端的音频流。我在 opus 编解码器中接收流。我可以对其进行解码,也可以使用 NAudio 库进行播放。现在我需要将 opus 编解码器流转码为 G.711 ulaw 编解码器。这样,我可以使用 UDP 在多播广播频道中播放转码流。
android - 在 Android 中使用“ulaw”编码生成 .wav 音频文件
我正在尝试从原始 pcm 数据生成具有 ulaw 编码的 wav 文件。我已经通过在谷歌和这里找到了一些解决方案,但我似乎无法让音频很好地播放。它的嘈杂和筛选的声音。可能是音频播放太快,不确定。
所以,这是我迄今为止尝试过的代码。
我有我的 AudioRecorder.java,它记录了数据并将其保存为原始 pcm 文件,将原始 pcm 数据转换为 ulaw 编码数据,创建 wav 标头,然后将数据流合并并保存为一个 .wav 文件
我有 AudioFileUtils.java,它只提供要保存的扩展名的路径和附加
我正在使用 UlawEncoderInputStream.java,我在这里找到了它并对其进行了一些更改,可以在下面找到
在做完这一切之后,正如我所说的那样,声音太刺耳和嘈杂。不知道我错在哪里。
任何帮助,不胜感激!先感谢您。
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 中,但它确实存在0
于m=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 在它们之间发送媒体?
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 输出音频,它正确且清晰
谁能帮我编码
stream - 如何使用 twilio 双向流功能播放原始音频数据
我正在使用 Twilio 可编程语音来处理电话。
我想使用双向流功能发送一些原始音频数据以通过 twilio 播放,初始化代码如下所示,
然后当从 twilio 获得 wss 连接时,我开始向 twilio 发送原始音频数据,就像这样
test.wav
audio/x-mulaw
是一个以 8000 的采样率编码的 wav 文件。
但是运行时,我什么也听不见,在 twilio 控制台上,它说
我不知道哪一部分是错的。有谁知道我的问题是什么?我找不到有关此场景的示例,只需按照此处的说明进行操作,如果有人知道有关此示例的示例,我将不胜感激,谢谢。
ios - 我想从 iphone 麦克风录制并转换为 ulaw 格式的流媒体
我想从 iphone 麦克风录制并转换为 ulaw 格式的流数据,我猜那是 pcm 数据,但我有噪音。
installTap buff是什么音频格式?如何获得 ulaw 数据格式?我可以从 AVAudioRecorder 得到它,但我不会得到一个文件。更改格式设置 'AVFormatIDKey=kAudioFormatULaw' 会崩溃。
和连接是:
python-3.x - 当 Twilio 呼叫连接时说“你好”
我在 python Flask 中有一个 websocket,可以监听 twilio 调用。当通话开始时,我想说“你好”这是代码。
但上述方法不起作用。我检查了微软认知服务语音 sunthesizer 返回 WAV 格式的字节,所以我使用了lin2ulaw
表单 pythonaudioop
模块。
需要帮忙。提前致谢。
javascript - reactjs如何将ulaw格式文件转换为wav格式
我正在尝试在 reactjs 中播放 .ulaw 格式,但没有找到任何直接播放 ulaw 文件的方法。所以我尝试使用 wavfile 插件将 ulaw 格式转换为 wav。但转换后它播放不同的噪音,我无法确定实际错误在哪里。
ulaw文件详细信息:
采样率 8000
比特率 64
单声道
java - Java 将 MP3 音频输入流转换为 µ-law
我有一个 MP3 音频文件,我必须将其转换为 µ-law (8000/mulaw) base64 编码字符串。我尝试了不同的方法,但我无法做到这一点。但从一开始:
基于 mp3spi,我们可以将 MP3-File 读取到 AudioInputStream
这是我尝试使用的代码:
不幸的是,生成的结果不适用于目标系统。目标系统本身正在工作,如果我只使用波形文件,一切都很好。
有人有解决方案吗?
问候托马斯
ios - 将流式 u-law 转换为 PCM 听起来很金属
我有一个语音流应用程序,它通过 websocket 接收实时音频,编码为 G.711 u-law 8KHz 单声道,我想使用AVAudioEngine
.
为此,我将音频样本转换为具有相同采样率和音频参数的 PCM (Float32),使用AVAudioConverter
.
出于某种原因,我听到的声音是金属的和回声的。
这是我的代码:
func convertAudio(data: Data)
每次我从 websocket 接收音频数据时都会调用它。
我想知道我用于转换音频的代码是否不正确,或者是否有更好的解决方案来解决这个问题,并希望得到任何建议。