问题标签 [i2s]

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 回答
76 浏览

audio - 阿尔萨记录双倍速度

免责声明:我在这里发布了同样的问题(有不同的观点)

我使用带有自定义驱动程序的SPH0645 I2S 麦克风

它接缝被 alsa 正确识别:

使用arecord录音时,声音会加快 2 倍

使用arecord -d(持续时间)录制时:

  • 命令持续时间是要求的两倍
  • 录制的文件具有正确的持续时间,但速度提高了 2

我用示波器检查了 BCLK 时钟和帧(WS)时钟:

声音示例:这里

据我了解,时钟是正确的。数据表指出“过采样率固定为 64,因此 WS 信号必须为 BCLK/64 并与 BCLK 同步。”

也许在 alsa 的某个地方有一个我不知道的配置?

让我知道我是否可以添加更多信息。

0 投票
0 回答
63 浏览

audio - TI 音频 DAC - PCM1754-Q1:它在 I2S 模式下是否支持 16BIT?

我正在将 pcm1754 移植到嵌入式 linux 系统。

它设置为 I2S 16 位模式,但它不起作用。

它支持 16 位(不是 24 位)i2s 吗?

但我使用与 PCM1754 相同的电线(BCK、SCK、LRCK、DAT)和设置连接到 PCM5102,它可以工作。

是什么让这两个芯片不同?

我能够从数据表中获得以下信息。

在此处输入图像描述 在此处输入图像描述

看上面的数据,不知道是否支持16bit i2s。

请教我。

ps:看datasheet,好像i2s模式不支持256fs,是不是也是这样?

谢谢你。

0 投票
0 回答
79 浏览

node.js - 用于 NodeJs 中实时 PCM 音频数据的音频可视化器

我有 16 位 PCM 数据流传入我的节点服务器。任何人都可以建议任何 API 来实时可视化这个传入的流。

0 投票
1 回答
153 浏览

memory - 启用 PSRAM 的 ESP-ADF I2S 记录断断续续

首先; 我将 ESP-IDF 4.2 与 ESP-ADF 一起使用,并且有两个 CMM4030D 麦克风连接到定制板上的 ESP32-WROVER-E。这些麦克风应将 wav 文件录制到 SPI 连接的 SD 卡中。

这完美无瑕!但不是在启用 PSRAM 时,应该在启动时初始化(它会这样做)并且可以使用 heap_caps_alloc() 进行分配。PSRAM 和 SPI Flash 的频率设置为 80MHz,引脚 16 和 17 没有任何连接。

SDK 配置很可能不是问题,因为我以 wifi-ble 共存示例的配置为基础。

所以,总结一下;当 PSRAM 被启用(启动时启动并且可以使用 heap_caps_alloc 分配)时,记录是不稳定的,但是当它被禁用时(但仍然运行相同的代码)它工作正常......到底是什么原因导致这个问题?

亲切的问候,

困惑的约赫姆

0 投票
0 回答
342 浏览

arduino - 将 I2S 库与 Adafruit Feather Huzzah ESP8266 一起使用的问题

我有一个非常令人沮丧的问题,因为它看起来简单而琐碎。我尝试使用带有 Arduino IDE 1.8.15 的 adafruit 分线板“Adafruit I2S MEMS Microphone Breakout”和“Adafruit Feather Huzzah ESP8266”。我安装了 esp8266 板,我可以上传简单的草图。但我想使用上面提到的麦克风来查看 Arduino IDE 串行监视器上的输出(比如这里https://www.youtube.com/watch?v=m8LwPNXqK9o)。

1.) 但是如果我尝试在“没有这样的文件或目录”中包含“#include <driver/I2S.h>”,则草图已经崩溃。我无法在线找到驱动程序文件夹应该在哪里的答案,如果库应该在那里以及如何修复它。2.) 如果我只是做一个像“#include <I2S.h>”这样的包含,IDE 找不到它应该知道的变量类型。

1.) 草图:

错误:

2.)

草图:

错误:

0 投票
1 回答
160 浏览

esp32 - nanoFramework 中的 ESP32 I2S

我正在尝试复制我发现的一个 C++ 项目,用于使用 I2S 对 ESP32 上的声音数据进行采样,但使用 C# 和 nanoFramework。

在 ADCSampler.cpp 文件中,加载了以下标头

nanoframework 具有命名空间Windows.Devices.Adc,我理解它或多或少与driver/adc.h.

但是我找不到任何与 I2S 相同的东西,有一个I2C库

我正在努力的具体代码是:

我发现您可以在 nanoFramework 中配置 ADC,如下所示:

并获得 ADC 通道

但这大约是我能想到的。

我对微控制器和 ESP32 平台还很陌生,所以仍然学到很多东西。

我错过了什么还是仍在进行中?

是否有其他选项可以代替 I2S?

0 投票
2 回答
389 浏览

c - STM32:使用 DMA 时 I2S 输入不起作用

我正在尝试在单声道设置中将“STM32F401RET6 Nucleo-64”微控制器与Adafruit I2S 麦克风连接起来。为了完成这项任务,我想启用 DMA。

我使用 STM32 Cube IDE 中的设备配置工具使用以下参数激活 I2S3:

I2S3

  • 全双工主控
  • 传输模式:模式主接收;
  • 通信标准:MSB First(左对齐);
  • 数据和帧格式:32 位帧上的 24 位数据;
  • 所选音频频率:48 kHz;
  • 时钟源:I2S PLL 时钟;
  • 时钟极性:低;
  • 主时钟输出禁用。

DMA

  • SPI_RX3,DMA 1 Stream 2,外设到内存,高优先级;
  • FIFO,阈值 = 满,数据宽度 = 半字,突发大小 = 单;
  • 在 NVIC 设置中,DMA 1 Stream 2 和 SPI3 都启用了中断。

接下来,使用代码生成器工具自动生成起始代码。对此起始代码进行了一些更改:

  • 设置 GPIO_PULL_DOWN 使三态始终读入 0;

我已经使用示波器绘制了来自麦克风的数字数据波形。这似乎是正确的,即声音触发了麦克风,这在最高有效位中是可见的。如果我是正确的,这使得错误在于将数据读入正确的格式。要执行单声道测量,数据表规定应该使用 100k Ohm 电阻器,我的设置中有该电阻器。

在我的 main.c 程序中,我使用 HAL 函数“ HAL_I2S_Receive_DMA ”来尝试填充我的 500 个样本数组。

主.c:

当我调试代码并在“main.c”的第 34 行设置断点时,微控制器内存不会相应地更新其值。所有值都保持为零。两个 DMA 状态标志都设置为 1。我猜这个问题与时间有关,但直到现在我才能解决这个问题。

链接到 GitHub 上的完整源代码

链接到 GitHub 上的 HAL_I2S_Receive_DMA 函数

提前致谢。

0 投票
0 回答
38 浏览

stm32 - 如何将 stm32f4 板与麦克风阵列模块链接?

全部

我计划使用 stm32f411Re 板来采样声音。

现在,我有一个有 7 个引脚的麦克风阵列模块:V3.3、GND、CLK、Data1、Data2、Data3 和 Data4。我通过 CubeMX 生成项目代码。

我已经分别通过 I2S、PDM2PCM 测试了每个数据通道。一切正常。但是我不知道如何同时接收 4 个路径数据。

我可以使用 CubeMX 轻松配置此需求吗?

谢谢,

索拉

0 投票
0 回答
36 浏览

device-driver - I2S 输入配置 Beaglebone ALSA

我正在尝试从Beaglebone AI 中的圆形麦克风板 ( TIDA-01454 ) 捕获声音。我已经通过 I2C 成功配置了 CMB 的 ADC,并检查了 I2S 输出与外部 DAC 是否正常工作。

然而,我的下一步是将这个 I2S 捕获到我的 Beaglebone AI 中,以便以后进行处理。我想我已经按照本指南本文档正确配置了引脚。所以我的显示引脚是这样的:

sudo 显示引脚

我的 DTS 文件是这样的:

但是我认为它不会将其检测为捕获设备。由于 grep 和 arecord 命令返回以下内容:

我认为 ALSA 配置可能存在问题,但我是新手,我不知道该怎么做。

我的 ALSA 版本是:Advanced Linux Sound Architecture Driver Version k4.14.108-ti-r143.

我的声卡是:

所以没有检测到卡?是ALSA还是驱动问题?我该怎么做?

0 投票
0 回答
78 浏览

javascript - 使用 ESP32-audioI2S 库在 ESP32 上播放使用 MediaRecorder 录制的 MP3/WAV 文件时出现标头丢失错误

我正在尝试在网页上使用MediaRecorder Javascript 库录制 .mp3 和 .wav,并使用ESP32-audioI2S库在 ESP32 上播放。我可以使用 Audacity 播放器/Windows 播放器在 PC 上播放录制的 MP3 和 WAV 文件。但是 ESP32 没有使用库播放相同的 MP3/WAV。我得到WAV 文件缺少 RIFF 标头和 MP3 文件缺少标头。我附上了用于使用 MediaRecorder 进行录制的代码、用于播放录制和下载的音频文件的代码以及我收到的错误消息。用于录制音频的代码有什么问题吗?还是我在图书馆里缺少什么?在此先感谢您的帮助。

使用的板子:ESP32 开发模块

UDA1334A(Adafruit I2S 立体声解码器分线板)用于播放音频。

代码:

  1. 用于播放音频(相当简单)
  1. 用于录制 - 公开的 js、html 和 css 文件(可能只有 js 文件就可以了)

错误信息:

wav 文件:

mp3 文件: