精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OpenHarmony輕量化系統聲音收錄

系統 OpenHarmony
本次使用的INMP441是一個數字麥克風,即本身包含了ADC,傳遞進來的數據是數字量。得到的數據便是直接的PCM編碼格式的數據,若想生成WAV文件,只需要生成一個wav head來標識即可。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

概括

前一陣子想著語音識別作為物聯網不可或缺的一部分,前提是獲取到語音的聲音數據。對于聲音收錄數字化,stm32有很多現成的樣例,而OpenHarmony方面較少該方面的資料。便想著在OpenHarmony實現接收INMP441麥克風模塊。本次實現通過I2S接收INMP441模塊的PCM數據。

#創作者激勵#【FFH】OpenHarmony輕量化系統聲音收錄-開源基礎軟件社區

環境

  • OpenHarmony-3.1
  • 潤和hispark_pegasus Hi3861開發板
  • DevEco Device Tool
  • SerialPlot
  • INMP441麥克風模塊

聲音數字化

生活中的聲音是通過一定介質傳播的波、主要由振幅和頻率兩個指標來描述。

聲音數字化:麥克風將聲音以量化位數將聲音數字化,常見的量化位深有16bit、24bit、32bit,其意義就是將每個采樣點用多少位表示聲音振幅的范圍,其位深越大音質越好。麥克風再根據采樣率進行采集聲音,采樣率的意思就是1秒中采集聲音的次數,采樣率越高音質越好。還決定音質的便是聲道數,使用雙聲道可以大大豐富聲音的表現力,但隨之而來的便是數據量的翻倍。

現實生活中的聲音信號是如下圖般的波形圖,但是我們的計算機中只能保存數值。于是我們將波形圖量化,使用一個個整數數據記錄聲音。

#創作者激勵#【FFH】OpenHarmony輕量化系統聲音收錄-開源基礎軟件社區


本次使用的INMP441是一個數字麥克風,即本身包含了ADC,傳遞進來的數據是數字量。得到的數據便是直接的PCM編碼格式的數據,若想生成WAV文件,只需要生成一個wav head來標識即可。

// 生成wav header,32bit 位深
void wavHeader(byte* header, int wavSize){ // 數字小端格式,字符大端格式
header[0] = 'R';
header[1] = 'I';
header[2] = 'F';
header[3] = 'F';
unsigned int fileSize = wavSize + headerSize - 8;
header[4] = (byte)(fileSize & 0xFF); // file size, 4byte integer
header[5] = (byte)((fileSize >> 8) & 0xFF);
header[6] = (byte)((fileSize >> 16) & 0xFF);
header[7] = (byte)((fileSize >> 24) & 0xFF);
header[8] = 'W';
header[9] = 'A';
header[10] = 'V';
header[11] = 'E';
header[12] = 'f';
header[13] = 'm';
header[14] = 't';
header[15] = ' ';
header[16] = 0x10; // length of format data = 16, 4byte integer
header[17] = 0x00;
header[18] = 0x00;
header[19] = 0x00;
header[20] = 0x01; // format type:1(PCM), 2byte integer
header[21] = 0x00;
header[22] = 0x01; // channel number:1, 2byte integer
header[23] = 0x00;
header[24] = 0x80; // sample rate:16000=0x00003E80, 4byte integer
header[25] = 0x3E;
header[26] = 0x00;
header[27] = 0x00;
header[28] = 0x00; // SampleRate*BitPerSample*ChannelNum/8=16000*32*1/8=64000=0x0000FA00, 4byte integer
header[29] = 0xFA;
header[30] = 0x00;
header[31] = 0x00;
header[32] = 0x04; // BitPerSample*ChannelNum/8 = 4, 2byte integer
header[33] = 0x00;
header[34] = 0x20; // BitPerSample:32 = 0x0020, 2byte integer
header[35] = 0x00;
header[36] = 'd';
header[37] = 'a';
header[38] = 't';
header[39] = 'a';
header[40] = (byte)(wavSize & 0xFF);
header[41] = (byte)((wavSize >> 8) & 0xFF);
header[42] = (byte)((wavSize >> 16) & 0xFF);
header[43] = (byte)((wavSize >> 24) & 0xFF);
}

針腳定義

本次實驗只用到了以下四個I2S的針腳

  • SCK(CK):串行時鐘,由主機產生的時鐘線,用于控制每位數據的傳輸時序,SCK頻率= 聲道數 采樣頻率 * 采樣位數*,在OpenHarmony上被定義為BCLK口
  • SD:I2S數據線,從機通過此發送數據給主機,在OpenHarmony上被定義為RX口
  • WS:聲道選擇線,由主機發送給從機,從機根據此判斷發送左聲道還是右聲道。低電平為左聲道,高電平為右聲道。
  • L/R:左右聲道選擇線,指定此從機為左聲道還是右聲道。低電平為左聲道,高電平為右聲道。

INMP441

Hi3861

SCK

7

SD

11

W

8

L/R

根據需求接GND或3V3

GND

GND

VDD

3V3

查看音頻波形

Hi3861接收到了麥克風模塊上傳的音頻數據,我們可以利用串口將音頻數據發送到電腦,電腦使用串口繪畫工具SerialPlot查看音頻波形,該工具的使用方法和使用其他串口工具相似,網上也有許多使用教程,這里就不再詳細闡述。

#創作者激勵#【FFH】OpenHarmony輕量化系統聲音收錄-開源基礎軟件社區

代碼

流程:

  1. 初始化IO口
  2. 配置I2S(采樣率為8KHz,量化位數為24bit)
  3. 初始化I2S
  4. 讀取I2S數據,OpenHarmony的讀取函數得到的數據就是24bit數字量;無需像stm32需要讀取的數據是byte類型,然后再拼接。

數據將以LRLR分布,即是一個左聲道數據,一個右聲道數據分布

若是只使用到單聲道,也是LRLR分布,另外一個聲道數據為0

#include <stdio.h>
#include <unistd.h>

#include "ohos_init.h"
#include "cmsis_os2.h"
#include "iot_gpio.h"
#include "iot_pwm.h"
#include "iot_i2c.h"
#include "iot_errno.h"

#include "hi_dma.h"
#include "hi_types_base.h"
#include "hi_i2s.h"

#include "hi_io.h"

void i2s_init_demo(void)
{
hi_u32 ret;
//初始化IO口
IoTGpioInit(HI_IO_NAME_GPIO_7);
IoTGpioInit(HI_IO_NAME_GPIO_8);
IoTGpioInit(HI_IO_NAME_GPIO_11);
IoTGpioInit(HI_IO_NAME_GPIO_10);
hi_io_set_func(HI_IO_NAME_GPIO_7, HI_IO_FUNC_GPIO_7_I2S0_BCLK);
hi_io_set_func(HI_IO_NAME_GPIO_8, HI_IO_FUNC_GPIO_8_I2S0_WS);
hi_io_set_func(HI_IO_NAME_GPIO_11, HI_IO_FUNC_GPIO_11_I2S0_RX);
hi_io_set_func(HI_IO_NAME_GPIO_10, HI_IO_FUNC_GPIO_10_I2S0_TX);

ret = hi_i2s_deinit();
//配置I2S,采樣率為8KHz,量化位數為24bit
hi_i2s_attribute i2s_cfg = {
.sample_rate = HI_I2S_SAMPLE_RATE_8K,
.resolution = HI_I2S_RESOLUTION_24BIT,
};
if (ret != HI_ERR_SUCCESS)
printf("Failed to deinit i2s!\n");
//初始化
ret = hi_i2s_init(&i2s_cfg);
if (ret != HI_ERR_SUCCESS)
printf("Failed to init i2s!\n");
printf("ret = %d \n", ret);
printf("I2s init succrss!\n");
}

void i2s_main_demo(void)
{
hi_u32 ret;
i2s_init_demo();
sleep(2);

hi_u32 get_buff[100] = {0};
while(1)
{
//讀取I2S信息
hi_i2s_read(get_buff, 100, HI_SYS_WAIT_FOREVER);
for (int i = 0; i < 100;i++)
{
printf("%d\n", get_buff[i]);
}
}
}
//demo線程創建
void INMP441TestDemo(void)
{
osThreadAttr_t attr;

attr.name = "INMP441Task";
attr.attr_bits = 0U;
attr.cb_mem = NULL;
attr.cb_size = 0U;
attr.stack_mem = NULL;
attr.stack_size = 10240;
attr.priority = osPriorityNormal;

if (osThreadNew(i2s_main_demo, NULL, &attr) == NULL)
{
printf("[INMP441Task] Falied to create INMP441Task!\n");
}
}
APP_FEATURE_INIT(INMP441TestDemo);
static_library("mic_test") {
sources = [
"inmp441_demo.c",
]

include_dirs = [
"http://utils/native/lite/include",
"http://kernel/liteos_m/components/cmsis/2.0",
"http://base/iot_hardware/peripheral/interfaces/kits",
"http://device/soc/hisilicon/hi3861v100/hi3861_adapter/hals/communication/wifi_lite/wifiservice",
"http://device/soc/hisilicon/hi3861v100/hi3861_adapter/kal",
"http://ohos_bundles/@ohos/device_soc_hisilicon/hi3861v100/sdk_liteos/include",
"http://device/soc/hisilicon/hi3861v100/sdk_liteos/include"
]
}

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2023-03-10 09:32:31

ANY功能短數據通信功能

2023-03-17 16:31:19

LVGL鴻蒙

2023-03-31 09:35:19

LVGL使用鴻蒙

2022-10-24 14:54:29

LWIP協議鴻蒙

2022-09-22 15:23:40

設備開發鴻蒙

2025-11-06 17:45:15

2019-07-04 11:46:44

智慧安防云存儲軟件

2025-06-16 08:51:23

2023-09-11 19:53:50

2023-06-09 14:51:31

5G輕量化

2016-04-20 15:36:38

圖片壓縮工具輕量化

2011-04-28 12:53:29

3D眼鏡3D家庭影院

2017-11-21 08:19:26

機箱桌面PC

2022-08-10 16:56:30

StreamLak快手

2025-05-06 13:42:16

微軟Phi-4模型

2021-09-07 18:05:51

深信服安全

2025-06-03 08:45:25

點贊
收藏

51CTO技術棧公眾號

国产一区二区电影| 国产精品无码专区| 日韩在线观看视频一区二区| 国模雨婷捆绑高清在线| 99国产精品一区二区| 亚洲va欧美va国产va天堂影院| 亚洲视频精品在线| av日韩一区二区三区| 一级片视频网站| 欧美少妇xxxx| 日本黄色一区二区| 免费电影一区| 日韩精品久久久久久久| 一区中文字幕电影| 亚洲欧美区自拍先锋| 国产日韩在线精品av| 国产伦理片在线观看| 中文日产幕无线码一区二区| 99精品视频在线播放观看| 欧美激情视频一区二区三区不卡| 午夜福利123| 国产三区视频在线观看| 国产真实精品久久二三区| 97免费视频在线播放| 国产毛片毛片毛片毛片毛片毛片| 欧美系列精品| 久久久久久一二三区| 欧美有码在线视频| 久久久久久亚洲中文字幕无码| 午夜影院在线播放| 久久丝袜美腿综合| 国产精品久久久久久av福利| 国产激情av在线| 国产伊人久久| 福利视频第一区| 四虎一区二区| 国产精品乱码久久久| 欧美日韩一区二区高清| 精品成人一区二区三区四区| 男人用嘴添女人下身免费视频| 五月婷婷在线观看视频| 午夜综合激情| 久久好看免费视频| 中文字幕99页| 精品国产第一福利网站| 精品久久久久久久久久ntr影视| 免费一区二区三区| 免费国产精品视频| 视频一区视频二区中文| 最新国产精品亚洲| 一级全黄裸体片| 亚洲淫成人影院| 午夜精品久久久久久久久久久 | 久久亚洲成人| 欧美一区二区在线免费播放| 欧美一级视频免费看| 特级毛片在线| 久久久久88色偷偷免费| 麻豆av一区二区三区| 亚洲 美腿 欧美 偷拍| 成人福利视频在线| 国产精自产拍久久久久久| 男人操女人的视频网站| 亚洲成人国产| 亚洲裸体xxxx| 欧美精品色视频| 制服丝袜专区在线| 日韩欧美高清在线视频| 天天做天天爱天天高潮| 午夜在线观看视频18| 99国产精品久久| 欧美久久电影| 精品人妻aV中文字幕乱码色欲 | 国产福利影院在线观看| 成人福利片网站| 久久日韩精品一区二区五区| 欧美日韩一区二区视频在线 | 国产日韩精品视频一区| 亚洲最大的免费| 亚洲一区二区91| 久久人体视频| 久久成人精品一区二区三区| 51妺嘿嘿午夜福利| 精品精品国产三级a∨在线| 欧美片网站yy| 无码日韩人妻精品久久蜜桃| zzzwww在线看片免费| 日韩毛片视频在线看| 欧美日韩国产高清视频| 在线激情网站| 日本一区免费视频| 久久久综合亚洲91久久98| 不卡的日韩av| 99精品久久只有精品| 相泽南亚洲一区二区在线播放| 成人日韩欧美| 色婷婷久久久亚洲一区二区三区| 国产一区 在线播放| 午夜精品一区| 中文一区二区完整视频在线观看| 久久精品国产美女| 三级外国片在线观看视频| 亚洲一区二区三区四区不卡| a级网站在线观看| 国产专区在线播放| 99精品视频一区二区三区| 日韩在线国产| 福利成人在线观看| 久久精品欧美一区二区三区不卡 | av软件在线观看| 国产精品国产三级国产三级人妇| 欧美日本国产精品| 亚洲综合图区| 欧美三区在线视频| 久久久国产欧美| 日韩精品免费视频一区二区三区| 欧美色视频在线| 95视频在线观看| 97精品国产| 欧洲午夜精品久久久| 影音先锋亚洲天堂| 亚洲精品欧洲| 91国产精品视频在线| 国产亚洲成人av| 狠狠入ady亚洲精品| 欧美激情精品久久久久久| 中文在线观看av| 久久国产乱子精品免费女| 欧洲s码亚洲m码精品一区| 国产露脸无套对白在线播放| 久久久久久99久久久精品网站| 国产小视频免费| 国产在线拍揄自揄拍视频| 欧美视频一区二| 色综合五月婷婷| 欧美码中文字幕在线| 在线成人一区二区| 国产美女高潮视频| 影音先锋日韩资源| 日韩av黄色在线观看| 中文字幕日本人妻久久久免费 | 永久免费网站在线| 欧美午夜影院一区| www.色天使| 激情五月综合网| 色七七影院综合| 久久久久亚洲视频| 国产乱色国产精品免费视频| 国产精品区一区二区三在线播放 | 91理论电影在线观看| 欧日韩一区二区三区| av电影在线观看| 欧美性猛交xxxx偷拍洗澡| 黄色av网址在线观看| 极品尤物久久久av免费看| 懂色一区二区三区av片| 水中色av综合| 国产精品久久国产精麻豆99网站| 成年人在线观看视频免费| 无码人妻aⅴ一区二区三区69岛| 成人羞羞视频播放网站| 国产精品草莓在线免费观看| 牛牛澡牛牛爽一区二区| 中文字幕不卡三区| 成人免费视频久久| 国产伦精品一区二区三区千人斩| 日本精品久久久| 五月激情婷婷网| 调教+趴+乳夹+国产+精品| 免费a级黄色片| 毛片一区二区| 51国产成人精品午夜福中文下载| av免费看在线| 亚洲国产精品va| 少妇被躁爽到高潮无码文| 韩国女主播成人在线| 欧美综合激情| 国产精品美女午夜爽爽| 久久精品国产一区二区电影| 成人激情四射网| 精品国产户外野外| 日韩影视一区二区三区| 国产一区不卡精品| 成人黄色av片| 日韩理论电影大全| 97精品国产97久久久久久免费| 暖暖视频在线免费观看| 在线成人高清不卡| 永久免费毛片在线观看| 精品一区二区三区蜜桃| 亚洲人成无码网站久久99热国产| 久久99高清| 992tv在线成人免费观看| 久青草国产在线| 欧美一级高清片在线观看| sm捆绑调教视频| 日韩成人伦理电影在线观看| 久久久久久九九九九| 欧美精品资源| 在线观看精品国产视频| 精品人妻伦一区二区三区久久| 欧美视频国产精品| 污污的视频在线免费观看| 琪琪一区二区三区| 色噜噜狠狠色综合网| 亚洲精品在线国产| 国产精品啪视频| www.视频在线.com| 欧美午夜理伦三级在线观看| 国产亚洲精品久久久久久无几年桃 | 欧美精品成人| 日韩欧美亚洲日产国产| 国产乱人伦丫前精品视频| 欧美精品福利在线| 黄频在线免费观看| 午夜久久福利影院| www.毛片com| 欧美高清一级片在线观看| 菠萝菠萝蜜网站| 日韩成人一区二区| 国产美女网站在线观看| 欧美在线精品一区| 国产精品12| 一区二区三区| 欧美多人乱p欧美4p久久| 成人午夜电影在线观看| 国产视频丨精品|在线观看| 亚洲va在线观看| 亚洲国产精品成人综合色在线婷婷| 69xxx免费视频| 精品一区二区三区在线视频| 日韩欧美黄色大片| 久久99伊人| 日韩毛片在线免费看| 日韩一区电影| 日本精品二区| 国产欧美日韩精品一区二区三区| 国内外成人免费视频| 欧美成人黑人| 久久精品国产欧美激情| 免费国产在线视频| 亚洲情综合五月天| 欧美黄色小说| 亚洲欧美国产日韩中文字幕| 人人九九精品| 91精品国产综合久久精品图片 | brazzers在线观看| 亚洲欧洲日本专区| 青青草在线播放| 亚洲精品自产拍| 美州a亚洲一视本频v色道| 日韩激情视频在线| 97精品人妻一区二区三区在线 | 精品国产91乱码一区二区三区四区| 久久国产一区| 自拍亚洲一区| 亚洲在线一区二区| 日韩欧美另类中文字幕| 91精品国产一区二区三区动漫| 日韩一二三区| 精品欧美国产一区二区三区不卡| 高清在线一区| 8090成年在线看片午夜| 男人的天堂免费在线视频| 久久亚洲精品视频| av毛片在线免费看| 久久久免费电影| 免费黄色在线观看| 亚洲欧美国产精品| av在线1区2区| 自拍偷拍亚洲精品| 亚洲男女视频在线观看| 亚洲高清免费观看高清完整版| 手机亚洲第一页| 一区二区三区四区在线观看视频| 欧美私人网站| 久久人人爽人人| 欧美18av| 91久久偷偷做嫩草影院| 美日韩黄色大片| 亚洲精品一区二区三区蜜桃久| 日韩精品一区二区三区中文在线 | 国产精品嫩草影院在线看| 手机在线观看国产精品| 欧美精品一区二区三区久久久竹菊| 男人日女人视频网站| 天堂av在线一区| 国产老头和老头xxxx×| 久久99国产精品久久99| 老司机av网站| 国产亚洲短视频| 青青草手机在线观看| 中文字幕一区二| 欧美一级高潮片| 欧美色国产精品| 日本黄色不卡视频| 色av中文字幕一区| www在线观看黄色| 91久久久久久久久久久| 成人综合日日夜夜| 91久久综合亚洲鲁鲁五月天| 狼人精品一区二区三区在线| 亚洲bbw性色大片| 99在线精品视频在线观看| 91成人综合网| 麻豆专区一区二区三区四区五区| 国产高清成人久久| 99re热这里只有精品视频| 日韩av毛片在线观看| 精品久久久久久久久久ntr影视| 91成品人影院| 亚洲日本中文字幕| sis001亚洲原创区| 91久久精品国产91久久| 欧美精品尤物在线观看| jizzjizz国产精品喷水| 久久亚洲国产精品一区二区| 中文字幕乱码在线人视频| 国产精品全国免费观看高清| 波多野结衣久久久久| 欧美视频专区一二在线观看| 亚洲精品喷潮一区二区三区| 亚洲国产精品热久久| 欧美在线观看在线观看| 欧美日韩国产91| 国产777精品精品热热热一区二区| 成人性生交大片免费看小说 | 开心九九激情九九欧美日韩精美视频电影 | 欧美最新精品| 国产精品久久视频| 欧美色图婷婷| 亚洲精品视频一区二区三区| 嫩草成人www欧美| 成年人在线观看av| 大伊人狠狠躁夜夜躁av一区| 粉嫩av一区二区夜夜嗨| 欧美成人一区在线| 综合日韩av| 六月婷婷久久| 美女尤物久久精品| 色欲av无码一区二区三区| 欧美日韩国产丝袜美女| 亚洲 另类 春色 国产| 国产91ⅴ在线精品免费观看| 欧美一区二区三区红桃小说| 日韩中文字幕在线视频观看| 99久久综合99久久综合网站| 四虎国产成人精品免费一女五男| 亚洲欧美激情视频在线观看一区二区三区| 日本中文字幕在线观看视频| 国产亚洲xxx| 91禁在线看| 国产一区二区精品在线| 国产欧美一级| 91香蕉视频免费看| 一区二区三区四区不卡在线| 日本欧美www| 精品va天堂亚洲国产| 超碰在线资源| 鲁丝片一区二区三区| 视频一区二区三区中文字幕| 亚洲午夜精品久久久久久高潮| 欧美亚洲动漫制服丝袜| 日本在线人成| 99久久精品免费看国产四区| 精品国产乱码久久久久久蜜坠欲下 | 成人精品视频一区| 欧美一区二区三区四| 亚洲另类激情图| 久久天天久久| 996这里只有精品| 91在线观看一区二区| 最近中文字幕av| 欧美精品一区在线播放| 第四色中文综合网| 国产无套粉嫩白浆内谢的出处| 国产精品麻豆欧美日韩ww| www.成人免费视频| 欧美亚洲激情视频| 欧美独立站高清久久| 少妇熟女视频一区二区三区 | 久久精品高清| 婷婷激情小说网| 亚洲成人av电影| 天堂网一区二区| 操日韩av在线电影| 色综合久久中文| 久久久久免费看黄a片app| 久久精品视频网| 99久久精品日本一区二区免费| 伊人伊成久久人综合网站| 99久热在线精品视频观看| 国产极品尤物在线| 国产精品入口麻豆九色| 六月丁香综合网| 国产日韩av在线播放| 国产精品久久777777毛茸茸| 韩国一级黄色录像| 精品亚洲一区二区三区在线播放 | 国精品无码一区二区三区|