基于PaddleSpeech的嬰兒啼哭識(shí)別(上)
2022-12-31 249 發(fā)布于吉林
版權(quán)
舉報(bào)
版權(quán)聲明:
本文內(nèi)容由阿里云實(shí)名注冊(cè)用戶自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,阿里云開(kāi)發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。具體規(guī)則請(qǐng)查看《 阿里云開(kāi)發(fā)者社區(qū)用戶服務(wù)協(xié)議》和 《阿里云開(kāi)發(fā)者社區(qū)知識(shí)產(chǎn)權(quán)保護(hù)指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫(xiě) 侵權(quán)投訴表單進(jìn)行舉報(bào),一經(jīng)查實(shí),本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。
簡(jiǎn)介: 基于PaddleSpeech的嬰兒啼哭識(shí)別(上)
一、基于PaddleSpeech的嬰兒啼哭識(shí)別
1.項(xiàng)目背景
對(duì)嬰兒來(lái)說(shuō),啼哭聲是一種通訊的方式,一個(gè)非常有限的,但類(lèi)似成年人進(jìn)行交流的方式。它也是一種生物報(bào)警器,向外界傳達(dá)著嬰兒生理和心理的需求?;谔淇蘼暵暡〝y帶的信息,嬰兒的身體狀況才能被確定,疾病才能被檢測(cè)出來(lái)。因此,有效辨識(shí)啼哭聲,成功地將嬰兒啼哭聲“翻譯”成“成人語(yǔ)言”,讓我們能夠讀懂啼哭聲的含義,有重大的實(shí)際意義。
2.數(shù)據(jù)說(shuō)明:
1.訓(xùn)練數(shù)據(jù)集包含六類(lèi)哭聲,已人工添加噪聲。A:awake(蘇醒)
B:diaper(換尿布)
C:hug(要抱抱)
D:hungry(饑餓)
E:sleepy(困乏)
F:uncomfortable(不舒服)
2.噪聲數(shù)據(jù)來(lái)源Noisex-92標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)。二、PaddleSpeech環(huán)境準(zhǔn)備
# 環(huán)境準(zhǔn)備:安裝paddlespeech和paddleaudio !python -m pip install -q -U pip --user !pip install paddlespeech paddleaudio -U -q
import warnings warnings.filterwarnings("ignore") import IPython import numpy as np import matplotlib.pyplot as plt import paddle %matplotlib inline
三、數(shù)據(jù)預(yù)處理
1.數(shù)據(jù)解壓縮
# !unzip -qoa data/data41960/dddd.zip
2.查看聲音文件
from paddleaudio import load data, sr = load(file='train/awake/awake_0.wav', mono=True, dtype='float32') # 單通道,float32音頻樣本點(diǎn) print('wav shape: {}'.format(data.shape)) print('sample rate: {}'.format(sr)) # 展示音頻波形 plt.figure() plt.plot(data) plt.show()
from paddleaudio import load data, sr = load(file='train/diaper/diaper_0.wav', mono=True, dtype='float32') # 單通道,float32音頻樣本點(diǎn) print('wav shape: {}'.format(data.shape)) print('sample rate: {}'.format(sr)) # 展示音頻波形 plt.figure() plt.plot(data) plt.show()
!paddlespeech cls --input train/awake/awake_0.wav
3.音頻文件長(zhǎng)度處理
# 查音頻長(zhǎng)度 import contextlib import wave def get_sound_len(file_path): with contextlib.closing(wave.open(file_path, 'r')) as f: frames = f.getnframes() rate = f.getframerate() wav_length = frames / float(rate) return wav_length
# 編譯wav文件 import glob sound_files=glob.glob('train/*/*.wav') print(sound_files[0]) print(len(sound_files))
# 統(tǒng)計(jì)最長(zhǎng)、最短音頻 sounds_len=[] for sound in sound_files: sounds_len.append(get_sound_len(sound)) print("音頻最大長(zhǎng)度:",max(sounds_len),"秒") print("音頻最小長(zhǎng)度:",min(sounds_len),"秒")
!cp train/hungry/hungry_0.wav ~/
# 音頻信息查看 import math import soundfile as sf import numpy as np import librosa data, samplerate = sf.read('hungry_0.wav') channels = len(data.shape) length_s = len(data)/float(samplerate) format_rate=16000 print(f"channels: {channels}") print(f"length_s: {length_s}") print(f"samplerate: {samplerate}")
# 統(tǒng)一到34s from pydub import AudioSegment audio = AudioSegment.from_wav('hungry_0.wav') print(str(audio.duration_seconds)) i = 1 padded = audio while padded.duration_seconds * 1000 < 34000: padded = audio * i i = i + 1 padded[0:34000].set_frame_rate(16000).export('padded-file.wav', format='wav')
import math import soundfile as sf import numpy as np import librosa data, samplerate = sf.read('padded-file.wav') channels = len(data.shape) length_s = len(data)/float(samplerate) format_rate=16000 print(f"channels: {channels}") print(f"length_s: {length_s}") print(f"samplerate: {samplerate}")
# 定義函數(shù),如未達(dá)到最大長(zhǎng)度,則重復(fù)填充,最終從超過(guò)34s的音頻中截取 from pydub import AudioSegment def convert_sound_len(filename): audio = AudioSegment.from_wav(filename) i = 1 padded = audio*i while padded.duration_seconds * 1000 < 34000: i = i + 1 padded = audio * i padded[0:34000].set_frame_rate(16000).export(filename, format='wav')
# 統(tǒng)一所有音頻到定長(zhǎng) for sound in sound_files: convert_sound_len(sound)
3.自定義數(shù)據(jù)集
import os from paddlespeech.audio.datasets.dataset import AudioClassificationDataset class CustomDataset(AudioClassificationDataset): # List all the class labels label_list = [ 'awake', 'diaper', 'hug', 'hungry', 'sleepy', 'uncomfortable' ] train_data_dir='./train/' def __init__(self, **kwargs): files, labels = self._get_data() super(CustomDataset, self).__init__( files=files, labels=labels, feat_type='raw', **kwargs) # 返回音頻文件、label值 def _get_data(self): ''' This method offer information of wave files and labels. ''' files = [] labels = [] for i in range(len(self.label_list)): single_class_path=os.path.join(self.train_data_dir, self.label_list[i]) for sound in os.listdir(single_class_path): # print(sound) if 'wav' in sound: sound=os.path.join(single_class_path, sound) files.append(sound) labels.append(i) return files, labels
# 定義dataloader import paddle from paddlespeech.audio.features import LogMelSpectrogram # Feature config should be align with pretrained model sample_rate = 16000 feat_conf = { 'sr': sample_rate, 'n_fft': 1024, 'hop_length': 320, 'window': 'hann', 'win_length': 1024, 'f_min': 50.0, 'f_max': 14000.0, 'n_mels': 64, } train_ds = CustomDataset(sample_rate=sample_rate) feature_extractor = LogMelSpectrogram(**feat_conf) train_sampler = paddle.io.DistributedBatchSampler( train_ds, batch_size=64, shuffle=True, drop_last=False) train_loader = paddle.io.DataLoader( train_ds, batch_sampler=train_sampler, return_list=True, use_buffer_reader=True)
相關(guān)文章
牙齦口腔病癥識(shí)別
本文介紹了利用機(jī)器學(xué)習(xí)和深度學(xué)習(xí)技術(shù)進(jìn)行牙齦病癥檢測(cè)的方法,重點(diǎn)探討了卷積神經(jīng)網(wǎng)絡(luò)(CNN)在醫(yī)學(xué)影像分析中的應(yīng)用。通過(guò)數(shù)據(jù)準(zhǔn)備、模型構(gòu)建、數(shù)據(jù)增強(qiáng)及訓(xùn)練評(píng)估等步驟,展示了如何實(shí)現(xiàn)牙齦病癥的自動(dòng)化診斷,旨在提高診斷效率和準(zhǔn)確性,助力口腔健康的早期干預(yù)。
基于反光衣和檢測(cè)算法的應(yīng)用探索
本文探討了利用機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺(jué)技術(shù)進(jìn)行反光衣檢測(cè)的方法,涵蓋圖像預(yù)處理、目標(biāo)檢測(cè)與分類(lèi)、特征提取等關(guān)鍵技術(shù)。通過(guò)YOLOv5等模型的訓(xùn)練與優(yōu)化,展示了實(shí)現(xiàn)高效反光衣識(shí)別的完整流程,旨在提升智能檢測(cè)系統(tǒng)的性能,應(yīng)用于交通安全、工地監(jiān)控等領(lǐng)域。
目錄
一、基于PaddleSpeech的嬰兒啼哭識(shí)別 1.項(xiàng)目背景 2.數(shù)據(jù)說(shuō)明: 二、PaddleSpeech環(huán)境準(zhǔn)備 三、數(shù)據(jù)預(yù)處理 1.數(shù)據(jù)解壓縮 2.查看聲音文件 3.音頻文件長(zhǎng)度處理 3.自定義數(shù)據(jù)集相關(guān)知識(shí)
嬰兒的喂養(yǎng)知識(shí)大全 嬰兒護(hù)理健康
嬰幼兒語(yǔ)言發(fā)育規(guī)律
嬰兒游泳知識(shí)大全
嬰兒游泳好嗎?嬰兒游泳的好處以及壞處分別是什么?
5種因素導(dǎo)致寶寶夜啼 中醫(yī)哪些方法能治療
嬰兒游泳的壞處是什么
母嬰護(hù)理知識(shí)大全
嬰兒游泳好不好
中醫(yī)如何外治小兒夜啼
《嬰幼兒營(yíng)養(yǎng)喂哺與健康成長(zhǎng)》【價(jià)格 目錄 書(shū)評(píng) 正版】
網(wǎng)址: 基于PaddleSpeech的嬰兒啼哭識(shí)別(上) http://www.u1s5d6.cn/newsview112643.html
推薦資訊
- 1發(fā)朋友圈對(duì)老公徹底失望的心情 12775
- 2BMI體重指數(shù)計(jì)算公式是什么 11235
- 3補(bǔ)腎吃什么 補(bǔ)腎最佳食物推薦 11199
- 4性生活姿勢(shì)有哪些 盤(pán)點(diǎn)夫妻性 10425
- 5BMI正常值范圍一般是多少? 10137
- 6在線基礎(chǔ)代謝率(BMR)計(jì)算 9652
- 7一邊做飯一邊躁狂怎么辦 9138
- 8從出汗看健康 出汗透露你的健 9063
- 9早上怎么喝水最健康? 8613
- 10五大原因危害女性健康 如何保 7826
- 陽(yáng)東縣龍熙山郭健瑜珈休閑中心 (陽(yáng)東縣東
- 賽樂(lè)賽居家輕食 + 無(wú)器械運(yùn)動(dòng),宅家輕松
- 【休閑運(yùn)動(dòng)】嵩皇體育小鎮(zhèn)——做好運(yùn)動(dòng)體驗(yàn)
- 十款休閑零食果凍優(yōu)品榜推薦
- 兒童休閑零食:親親蒟蒻果凍的清爽享受,家
- 無(wú)死角清洗油污,居家清潔必備神器推薦,絕
- 最全現(xiàn)代居家廚房用具清單
- 中國(guó)十大專(zhuān)業(yè)減肥!居家瘦:減肥,科學(xué)飲食
- 瘦肚子最有效方法有什么?推薦這6招居家減
- 休閑零食愈發(fā)健康化,堅(jiān)果品類(lèi)迎來(lái)代餐機(jī)會(huì)