Wolfram Audio | 시도해 볼 것들

모든 코드는 클릭 한 다음
+
를 눌러 편집하거나 실행할 수 있습니다.
오디오 처리 및 분석 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]]​​]​​

음원 식별

오디오 신호에서 무엇이 포함되어 있는지 식별합니다:
실행
AudioIdentify

혼합된 음원에서 오디오로 시작합니다:
실행
In[]:=
mixedsources=
;
반초 단위로 주요 음원을 식별합니다:
실행
In[]:=
segmentIds=AudioBlockMapAudioIdentify
&,mixedsources,{1,.5}//Normal
세그먼트를 모아 간격으로 조합합니다:
실행
In[]:=
intervals=GroupBysegmentIds,Last,
Function[
]

결과를 플롯합니다:
실행
In[]:=
LegendedAudioPlotmixedsources,

,SwatchLegend
