Wolfram 音声 | 試してみよう

コードはどれも,コード内をクリックしてから,編集したり,
+
を押して実行したりできます.
音声の処理と分析.Wolframの音声計算機能には,音声言語,音楽,その他の音声信号の高度に最適化された処理機能と高レベルの分析機能が備わっています.機械学習やニューラルネットワークと緊密に統合されているため,自動化システム,セキュリティ,医学等におけるソリューションを提供することができます.

音声のインポート,処理,エキスポート

高周波のバックグラウンドノイズを含む音声ファイルをインポートする:
実行
In[]:=
music=Import["ExampleData/sample.flac"]
音声のスペクトログラムを表示する:
実行
In[]:=
Spectrogram[music]
高周波のバックグラウンドノイズを取り除く:
実行
In[]:=
filteredmusic=LowpassFilter[music,
800
Hz
]
フィルタをかけた音声のスペクトログラムを見る:
実行
In[]:=
Spectrogram[filteredmusic]
希望の形式で結果をエキスポートする:
実行
In[]:=
Export["filteredexample.mp3",filteredmusic]

音声信号の可視化

さまざまなタイプのソースからの音声:
実行
In[]:=
sources=ExampleData[{"Audio",#}]&/@{"Cat","Cello","FemaleVoice"}
音声波形は,音声の振幅を経時的に示す:
実行
In[]:=
AudioPlot[#,PlotLayout->"Averaged"]&/@sources
スペクトログラムは,周波数を経時的に示す:
実行
In[]:=
Spectrogram/@sources
ピリオドグラムは,主要な周波数を示す:
実行
In[]:=
Periodogram[#,256]&/@sources

ノイズの除去や効果の追加

ノイズのある音声クリップで始める:
実行
In[]:=
apollo=ExampleData[{"Audio","Apollo11SmallStep"}]
音声のノイズを除去する:
実行
In[]:=
filteredapollo=WienerFilter[apollo,30]
音声の前半分にピッチシフトを施す:
実行
In[]:=
{beginning,end}=AudioSplit[filteredapollo,4];​​AudioJoinAudioPitchShiftbeginning,
1
octaves
,end

音声からの特徴抽出

話者が発音する数字のデータ集合で始める:
実行
In[]:=
digitspeech=
Input
SpeakerID
Output
Speaker A
1
Speaker A
2
Speaker A
3
Speaker B
1
Speaker B
2
Speaker B
3
Speaker C
1
Speaker C
2
Speaker C
3
;
事前訓練されたモデルを使って特徴抽出器を定義する:
実行
In[]:=
extractor=NetAppend[NetTake[NetModel["Wav2Vec2 Trained on LibriSpeech Data"],"FeatureExtractor"],"Mean"->AggregationLayer[Mean,1]]
抽出された特徴を3Dプロットで示す:
実行
In[]:=
Module{colors,styling},​​colors="Speaker A"->
,"Speaker B"->
,"Speaker C"->
;​​styling=
Function[
]
;​​Legended[​​FeatureSpacePlot3D[Normal[digitspeech[All,styling]],FeatureExtractor->extractor,LabelingFunction->None],​​PointLegend[Values[colors],Keys[colors]]​​]​​

音源の特定

音声信号に何が含まれているのかを特定する:
実行
In[]:=
AudioIdentify

混合音源の音声で始める:
実行
In[]:=
mixedsources=
;
半秒のセグメントで主要な音源を特定する:
実行
In[]:=
segmentIds=AudioBlockMapAudioIdentify
&,mixedsources,{1,.5}//Normal
セグメントをまとめて区間にする:
実行
In[]:=
intervals=GroupBysegmentIds,Last,
Function[
]

結果をプロットする:
実行
In[]:=
LegendedAudioPlotmixedsources,

,SwatchLegend
