OpenSmile介紹
- openSMILE(open-source Speech and Music Interpretation by Large-space Extraction)是一個開源工具包,用于語音和音樂信號的音頻特征提取和分類。openSMILE廣泛應用于情感計算的自動情感識別。openSMILE完全免費用于研究目的。
下載和安裝
- 在下述網(wǎng)頁下載opensmile的安裝包,鏈接
- 然后進入“/home/public/gl/MultiDetection/alzheimers-dementia-master/opensmile-master/”
- 輸入如下指令
bash build.sh
- 運行結果如下
- 將這個二進制執(zhí)行文件在環(huán)境路徑中添加。
export PATH="/home/public/gl/MultiDetection/alzheimers-dementia-master/opensmile-master/build/progsrc/smilextract:$PATH"
- 使用如下指令進行設置測試,輸出如下
SMILExtract -h
提取特征
格式轉換
- 我需要處理的是mp3文件,而opensmile僅僅支持處理wav文件,所以這里需要將wav文件轉為mp3文件
- 這里需要調用ffmpeg進行格式轉換,對應的腳本如下
#!/bin/bash
# 定義搜索和轉換的根目錄
SEARCH_DIR="/home/public/gl/Dataset/ADDReSS-M/"
# 使用 find 命令查找所有的 .mp3 文件
# 然后使用 while 循環(huán)和 read 命令逐一處理它們
find "$SEARCH_DIR" -type f -name "*.mp3" | while IFS= read -r mp3file; do
# 使用參數(shù)替換來生成新的 .wav 文件名
wavfile="${mp3file%.mp3}.wav"
# 檢查MP3文件是否存在
if [ ! -f "$mp3file" ]; then
echo "The file $mp3file does not exist, skipping."
continue
fi
# 調用 ffmpeg 進行轉換
ffmpeg -i "$mp3file" "$wavfile" < /dev/null && echo "Converted $mp3file to $wavfile"
# 如果不需要保留原MP3文件,取消下面一行的注釋
# rm "$mp3file"
done
echo "All MP3 files have been converted to WAV format."
- 輸出效果如下
特征提取
嘗試一
- 這里直接運行了下述腳本,遍歷所有的wav文件,并將特征進行保存,腳本代碼如下
#!/bin/bash
# openSMILE的配置文件路徑
SMILE_CONFIG="/home/public/gl/MultiDetection/alzheimers-dementia-master/opensmile-master/config/is09-13/IS13_ComParE.conf"
# 原始數(shù)據(jù)集的根目錄
SOURCE_DIR="/home/public/gl/Dataset/ADDReSS-M/"
# 特征文件保存的根目錄
FEATURE_DIR="./ADDReSS-M_features"
# 創(chuàng)建特征文件的保存目錄
mkdir -p "$FEATURE_DIR"
# 遞歸地查找所有的WAV文件
find "$SOURCE_DIR" -type f -name "*.wav" | while read -r wavfile; do
# 計算相對路徑
relative_path="${wavfile#$SOURCE_DIR}"
# 獲取不帶擴展名的文件名
base_name="$(basename "$relative_path" .wav)"
# 獲取不帶文件名的目錄路徑
dir_path="$(dirname "$relative_path")"
# 在特征文件目錄中創(chuàng)建相同的目錄結構
mkdir -p "$FEATURE_DIR/$dir_path"
# 設置輸出文件的完整路徑
output_file="$FEATURE_DIR/${dir_path}/${base_name}.csv"
# 使用openSMILE處理WAV文件
SMILExtract -C "$SMILE_CONFIG" -I "$wavfile" -O "$output_file"
echo "Features extracted for $wavfile and saved to $output_file"
done
echo "Feature extraction complete for all WAV files."
- 輸出結果如下
- 比較害怕及格diable對結果有什么影響,這里仔細地搜索相關資料進行學習
- 這個東西是用來設置輸出文件樣式的,如果我只需要csv的數(shù)據(jù)并不需要使用
- 這個東西是用來設置輸出文件樣式的,如果我只需要csv的數(shù)據(jù)并不需要使用
正常使用手段
- 需要指定提取音頻特征的配置文件、輸入文件和輸出文件,具體使用樣例如下
SMILExtract -C config/demo/demo1_energy.conf(配置文件) -I example-audio/opensmile.wav(輸入文件) -O opensmile.energy.csv(輸出文件)
- 運行結果如下
- 僅僅收到了MSG,運行成功
- 收到ERROR表示提取失敗
創(chuàng)建自己的配置文件
- 我們將使用此函數(shù)生成我們的第一個配置文件,該文件將能夠讀取波形文件、計算幀能量并將輸出保存到 CSV 文件。
- 具體指令如下
SMILExtract -cfgFileTemplate -cfgFileDescriptions -configDflt cWaveSource,cFramer,cEnergy,cCsvSink -l 1 2> myconfig/demo1_descriptions.conf
配置文件分析
- 第一部分是基本的配置
- 第二部分是當前配置文件所對應的不同的組件信息
- 可以在這里修改不同組件的參數(shù),比如說每一幀的長度等
- 可以在這里修改不同組件的參數(shù),比如說每一幀的長度等
常見的特征
-
Chroma features for key and chord recognition
用于鍵和和弦識別的色度功能 -
MFCC for speech recognition
用于語音識別的 MFCC -
PLP for speech recognition
用于語音識別的 PLP -
Prosody (Pitch and loudness)
韻律(音高和響度) -
The INTERSPEECH 2009 Emotion Challenge feature set
INTERSPEECH 2009 情感挑戰(zhàn)賽功能集 -
The INTERSPEECH 2010 Paralinguistic Challenge feature set
INTERSPEECH 2010 副語言挑戰(zhàn)賽功能集 -
The INTERSPEECH 2011 Speaker State Challenge feature set
INTERSPEECH 2011 Speaker State Challenge 功能集 -
The INTERSPEECH 2012 Speaker Trait Challenge feature set
INTERSPEECH 2012 Speaker Trait Challenge 功能集 -
The INTERSPEECH 2013 ComParE feature set
INTERSPEECH 2013 ComParE 功能集 -
The MediaEval 2012 TUM feature set for violent scenes detection.
用于暴力場景檢測的 MediaEval 2012 TUM 功能集。 -
Three reference sets of features for emotion recognition (older sets, obsoleted by the new INTERSPEECH challenge sets)
用于情感識別的三個參考功能集(較舊的功能集,已被新的 INTERSPEECH 挑戰(zhàn)集淘汰) -
Audio-visual features based on INTERSPEECH 2010 Paralinguistic Challenge audio features.
基于INTERSPEECH 2010副語言挑戰(zhàn)賽音頻特征的視聽特征。文章來源:http://www.zghlxwxcb.cn/news/detail-828888.html -
這里不同特征需要自己去了解,相關說明文檔鏈接\文章來源地址http://www.zghlxwxcb.cn/news/detail-828888.html
使用Gnuplot可視化特征
安裝
- 為了使用 gnuplot 可視化特征輪廓,您必須安裝 gnuplot 4.6 或更高版本。在 Linux 上,gnuplot 既可以通過發(fā)行版的包管理器安裝(在 Ubuntu 上:), sudo apt-get install gnuplot-nox 也可以從源代碼編譯(http://www.gnuplot.info)。對于 Windows,gnuplot 二進制文件可從項目網(wǎng)頁獲得。
使用
- 這里需要寫對應的plt腳本,然后調用gnuplot進行執(zhí)行。具體就給了三個樣例,分別是色度、頻譜圖還有響度曲線等,具體看官網(wǎng)就行。如果要自己畫圖,還是需要自己寫的。
總結
- 關于音頻特征,使用opensmile進行提取,還是挺快的,而且使用cpu就行,不需要使用gpu,下面就是嘗試不同的音頻特征就行。
到了這里,關于工具學習——使用OpenSmile提取音頻特征的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!