import%20marimo%0A%0A__generated_with%20%3D%20%220.23.1%22%0Aapp%20%3D%20marimo.App()%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%2000%20Wandas%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%8B%0A%20%20%20%20%23%23%20%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%83%BB%E9%9F%B3%E9%9F%BF%E8%A7%A3%E6%9E%90%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E6%96%B0%E3%81%97%E3%81%84%E3%82%A2%E3%83%97%E3%83%AD%E3%83%BC%E3%83%81%0A%0A%20%20%20%20%E3%81%93%E3%81%AE%E3%83%8E%E3%83%BC%E3%83%88%E3%83%96%E3%83%83%E3%82%AF%E3%81%A7%E3%81%AF%E3%80%81**%E3%81%AA%E3%81%9CWandas%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%AA%E3%81%AE%E3%81%8B**%E3%82%92%E8%AA%AC%E6%98%8E%E3%81%97%E3%80%81%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%81%AE%E8%AA%B2%E9%A1%8C%E3%81%A8Wandas%E3%81%8C%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E8%A7%A3%E6%B1%BA%E3%81%99%E3%82%8B%E3%81%8B%E3%82%92%E7%B4%B9%E4%BB%8B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20**%E5%AD%A6%E7%BF%92%E7%9B%AE%E6%A8%99%3A**%0A%20%20%20%20-%20%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%81%AE%E7%8F%BE%E7%8A%B6%E3%81%A8%E8%AA%B2%E9%A1%8C%E3%82%92%E7%90%86%E8%A7%A3%E3%81%99%E3%82%8B%0A%20%20%20%20-%20Wandas%E3%81%AE%E7%89%B9%E5%BE%B4%E3%81%A8%E5%88%A9%E7%82%B9%E3%82%92%E6%8A%8A%E6%8F%A1%E3%81%99%E3%82%8B%0A%20%20%20%20-%20%E3%81%A9%E3%82%93%E3%81%AA%E5%95%8F%E9%A1%8C%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%8B%E3%82%92%E7%9F%A5%E3%82%8B%0A%20%20%20%20-%20%E6%9C%80%E5%88%9D%E3%81%AE%E5%8B%95%E6%A9%9F%E4%BB%98%E3%81%91%E3%82%92%E5%BE%97%E3%82%8B%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%0A%20%20%20%20import%20wandas%20as%20wd%0A%0A%20%20%20%20return%20plt%2C%20wd%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%8E%AF%20%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%81%AE%E7%8F%BE%E7%8A%B6%E3%81%A8%E8%AA%B2%E9%A1%8C%0A%0A%20%20%20%20%23%23%23%20%E5%BE%93%E6%9D%A5%E3%81%AE%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%81%AE%E9%9B%A3%E3%81%97%E3%81%95%0A%0A%20%20%20%20%E9%9F%B3%E9%9F%BF%E3%83%BB%E6%8C%AF%E5%8B%95%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E8%A7%A3%E6%9E%90%E3%81%A7%E3%81%AF%E3%80%81%E4%BB%A5%E4%B8%8B%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E8%AA%B2%E9%A1%8C%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%EF%BC%9A%0A%0A%20%20%20%20%23%23%23%23%201.%20**%E8%A4%87%E9%9B%91%E3%81%AA%E3%83%84%E3%83%BC%E3%83%AB%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3**%0A%0A%20%20%20%20**%E5%95%8F%E9%A1%8C%E7%82%B9%3A**%0A%20%20%20%20-%20%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%82%92%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%0A%20%20%20%20-%20%E5%90%84%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%BD%A2%E7%8A%B6%E3%82%92%E6%84%8F%E8%AD%98%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%0A%20%20%20%20-%20%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%82%84%E3%81%99%E3%81%84%0A%20%20%20%20-%20%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8C%E5%86%97%E9%95%B7%E3%81%AB%E3%81%AA%E3%82%8B%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%23%202.%20**%E3%83%87%E3%83%BC%E3%82%BF%E7%AE%A1%E7%90%86%E3%81%AE%E8%A4%87%E9%9B%91%E3%81%95**%0A%0A%20%20%20%20-%20**%E5%A4%9A%E6%AC%A1%E5%85%83%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E6%89%B1%E3%81%84**%3A%20%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB%E6%95%B0%E3%80%81%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%88%E3%80%81%E6%99%82%E9%96%93%E8%BB%B8%E3%81%AE%E7%AE%A1%E7%90%86%0A%20%20%20%20-%20**%E3%83%A1%E3%83%A2%E3%83%AA%E5%8A%B9%E7%8E%87**%3A%20%E5%A4%A7%E8%A6%8F%E6%A8%A1%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%87%A6%E7%90%86%0A%20%20%20%20-%20**%E3%83%A1%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF**%3A%20%E5%8D%98%E4%BD%8D%E3%80%81%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB%E5%90%8D%E3%80%81%E5%87%A6%E7%90%86%E5%B1%A5%E6%AD%B4%E3%81%AE%E7%AE%A1%E7%90%86%0A%20%20%20%20-%20**%E5%9E%8B%E5%AE%89%E5%85%A8%E6%80%A7**%3A%20NumPy%E9%85%8D%E5%88%97%E3%81%AEdtype%E7%AE%A1%E7%90%86%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%23%203.%20**%E5%86%8D%E7%8F%BE%E6%80%A7%E3%81%A8%E4%BF%9D%E5%AE%88%E6%80%A7%E3%81%AE%E6%AC%A0%E5%A6%82**%0A%0A%20%20%20%20-%20**%E5%87%A6%E7%90%86%E5%B1%A5%E6%AD%B4%E3%81%AE%E8%BF%BD%E8%B7%A1**%3A%20%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E5%87%A6%E7%90%86%E3%82%92%E6%96%BD%E3%81%97%E3%81%9F%E3%81%8B%E5%88%86%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%0A%20%20%20%20-%20**%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E7%AE%A1%E7%90%86**%3A%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E4%BF%82%E6%95%B0%E3%80%81%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AA%E3%81%A9%E3%81%AE%E7%AE%A1%E7%90%86%0A%20%20%20%20-%20**%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E5%8C%96**%3A%20%E5%88%86%E6%9E%90%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%AE%E5%86%8D%E7%8F%BE%E3%81%8C%E9%9B%A3%E3%81%97%E3%81%84%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%23%20%E5%BE%93%E6%9D%A5%E3%81%AE%E4%BE%8B%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plt%2C%20wd)%3A%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20import%20scipy.signal%0A%0A%20%20%20%20_sampling_rate%20%3D%2016000%0A%20%20%20%20_duration%20%3D%201.0%0A%20%20%20%20data%20%3D%20wd.generate_sin(freqs%3D%5B440%5D%2C%20duration%3D1.0%2C%20sampling_rate%3D16000).data%0A%20%20%20%20t%20%3D%20np.arange(int(_sampling_rate%20*%20_duration))%20%2F%20_sampling_rate%0A%20%20%20%20data%20%3D%20data%20%2B%20np.random.randn(len(data))%0A%20%20%20%20(b%2C%20a)%20%3D%20scipy.signal.butter(4%2C%201000%20%2F%20(_sampling_rate%20%2F%202))%0A%20%20%20%20filtered%20%3D%20scipy.signal.filtfilt(b%2C%20a%2C%20data)%0A%20%20%20%20window%20%3D%20scipy.signal.windows.hann(len(filtered))%0A%20%20%20%20windowed%20%3D%20filtered%20*%20window%0A%20%20%20%20fft_result%20%3D%20np.fft.fft(windowed%2C%20norm%3D%22forward%22)%0A%20%20%20%20_freqs%20%3D%20np.fft.fftfreq(len(data)%2C%201%20%2F%20_sampling_rate)%0A%20%20%20%20(_fig%2C%20(_ax1%2C%20_ax2))%20%3D%20plt.subplots(2%2C%201%2C%20figsize%3D(10%2C%208))%0A%20%20%20%20_fig.suptitle(%22Traditional%20Approach%22)%0A%20%20%20%20t%20%3D%20np.arange(len(filtered))%20%2F%20_sampling_rate%0A%20%20%20%20_ax1.plot(t%2C%20filtered)%0A%20%20%20%20_ax1.set(title%3D%22Time%20Domain%20Signal%22)%0A%20%20%20%20_ax1.grid(True%2C%20alpha%3D0.3)%0A%20%20%20%20magnitude_db%20%3D%2020%20*%20np.log10(np.abs(fft_result)%20%2B%201e-10)%0A%20%20%20%20_ax2.plot(_freqs%5B%3A%20len(_freqs)%20%2F%2F%202%5D%2C%20magnitude_db%5B%3A%20len(_freqs)%20%2F%2F%202%5D)%0A%20%20%20%20_ax2.set(title%3D%22Filtered%20Spectrum%22%2C%20ylim%3D(-60%2C%200))%0A%20%20%20%20_ax2.grid(True%2C%20alpha%3D0.3)%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20plt.show()%0A%20%20%20%20print(%22%E5%BE%93%E6%9D%A5%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AD%E3%83%BC%E3%83%81%E3%81%A7%E3%81%AE%E5%87%A6%E7%90%86%E3%81%8C%E5%AE%8C%E4%BA%86%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%22)%0A%20%20%20%20return%20(np%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%9A%80%20Wandas%E3%81%AE%E8%A7%A3%E6%B1%BA%E3%82%A2%E3%83%97%E3%83%AD%E3%83%BC%E3%83%81%0A%0A%20%20%20%20%23%23%23%20Wandas%E3%81%AE3%E3%81%A4%E3%81%AE%E6%9F%B1%0A%0A%20%20%20%20%23%23%23%23%201.%20**Pandas%E3%83%A9%E3%82%A4%E3%82%AF%E3%81%AAAPI**%0A%20%20%20%20%60%60%60python%0A%20%20%20%20%23%20Wandas%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AD%E3%83%BC%E3%83%81%EF%BC%9A%E7%9B%B4%E6%84%9F%E7%9A%84%E3%81%AA%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3%0A%20%20%20%20import%20wandas%20as%20wd%0A%0A%20%20%20%20%23%20%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%20%E2%86%92%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%20%E2%86%92%20FFT%20%E2%86%92%20%E5%8F%AF%E8%A6%96%E5%8C%96%0A%20%20%20%20result%20%3D%20(%0A%20%20%20%20%20%20%20%20wd.read_wav('signal.wav')%0A%20%20%20%20%20%20%20%20.low_pass_filter(cutoff%3D1000)%0A%20%20%20%20%20%20%20%20.fft()%0A%20%20%20%20%20%20%20%20.plot(title%3D'Filtered%20Spectrum')%0A%20%20%20%20)%0A%20%20%20%20%60%60%60%0A%0A%20%20%20%20**%E5%88%A9%E7%82%B9%3A**%0A%20%20%20%20-%20%E7%9B%B4%E6%84%9F%E7%9A%84%E3%81%AA%E6%93%8D%E4%BD%9C%0A%20%20%20%20-%20%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3%E3%81%A7%E5%87%A6%E7%90%86%E3%82%92%E9%80%A3%E9%8E%96%0A%20%20%20%20-%20pandas%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AB%E3%81%AA%E3%81%98%E3%81%BF%E3%82%84%E3%81%99%E3%81%84%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plt)%3A%0A%20%20%20%20_fig%2C%20_ax%20%3D%20plt.subplots()%0A%20%20%20%20_ax.plot(%5B1%2C%202%2C%203%5D)%0A%20%20%20%20_fig%20%20%23%20%E3%82%BB%E3%83%AB%E3%81%AE%E6%9C%80%E5%BE%8C%E3%81%AB%E5%BF%85%E3%81%9A%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E7%BD%AE%E3%81%8F%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20plt%2C%20wd)%3A%0A%20%20%20%20signal%20%3D%20wd.generate_sin(freqs%3D%5B440%5D%2C%20duration%3D1.0%2C%20sampling_rate%3D16000)%0A%20%20%20%20signal%20%3D%20signal%20%2B%20np.random.randn(signal.n_samples)%0A%20%20%20%20result%20%3D%20signal.low_pass_filter(cutoff%3D1000).fft()%0A%20%20%20%20(_fig%2C%20(_ax1%2C%20_ax2))%20%3D%20plt.subplots(2%2C%201%2C%20figsize%3D(10%2C%208))%0A%20%20%20%20_fig.suptitle(%22Wandas%20Approach%22)%0A%20%20%20%20result.previous.plot(ax%3D_ax1%2C%20title%3D%22Time%20Domain%20Signal%22)%0A%20%20%20%20result.plot(ax%3D_ax2%2C%20title%3D%22Filtered%20Spectrum%22%2C%20ylim%3D(-50%2C%2010))%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20print(%22Wandas%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AD%E3%83%BC%E3%83%81%E3%81%A7%E3%81%AE%E5%87%A6%E7%90%86%E3%81%8C%E5%AE%8C%E4%BA%86%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%22)%0A%20%20%20%20result.info()%0A%20%20%20%20_fig%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%23%202.%20**%E7%B5%B1%E5%90%88%E3%81%95%E3%82%8C%E3%81%9F%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0**%0A%0A%20%20%20%20**ChannelFrame**%3A%20%E4%BF%A1%E5%8F%B7%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E7%B5%B1%E4%B8%80%E7%9A%84%E3%81%AB%E6%89%B1%E3%81%86%0A%20%20%20%20-%20**%E5%A4%9A%E6%AC%A1%E5%85%83%E3%83%87%E3%83%BC%E3%82%BF**%3A%20%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB%20%C3%97%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AE2D%E9%85%8D%E5%88%97%0A%20%20%20%20-%20**%E3%83%A1%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF**%3A%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%88%E3%80%81%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB%E5%90%8D%E3%80%81%E5%8D%98%E4%BD%8D%E3%80%81%E5%87%A6%E7%90%86%E5%B1%A5%E6%AD%B4%0A%20%20%20%20-%20**%E5%9E%8B%E5%AE%89%E5%85%A8%E6%80%A7**%3A%20ty%E5%AF%BE%E5%BF%9C%E3%81%AE%E5%8E%B3%E6%A0%BC%E3%81%AA%E5%9E%8B%E4%BB%98%E3%81%91%0A%20%20%20%20-%20**%E9%81%85%E5%BB%B6%E8%A9%95%E4%BE%A1**%3A%20Dask%E3%81%AB%E3%82%88%E3%82%8B%E3%83%A1%E3%83%A2%E3%83%AA%E5%8A%B9%E7%8E%87%E7%9A%84%E3%81%AA%E5%87%A6%E7%90%86%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%23%203.%20**%E5%8C%85%E6%8B%AC%E7%9A%84%E3%81%AA%E5%8F%AF%E8%A6%96%E5%8C%96**%0A%0A%20%20%20%20**%E4%B8%80%E3%81%A4%E3%81%AE%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%A7%E5%AE%8C%E5%85%A8%E3%81%AA%E5%88%86%E6%9E%90**%0A%20%20%20%20%60%60%60python%0A%20%20%20%20%23%20%E6%B3%A2%E5%BD%A2%E3%80%81%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E3%80%81%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%B8%80%E5%BA%A6%E3%81%AB%E8%A1%A8%E7%A4%BA%0A%20%20%20%20signal.describe()%0A%20%20%20%20%60%60%60%0A%0A%20%20%20%20**%E7%89%B9%E5%BE%B4%3A**%0A%20%20%20%20-%20%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%81%AA%E3%83%97%E3%83%AD%E3%83%83%E3%83%88%0A%20%20%20%20-%20%E5%87%BA%E7%89%88%E5%93%81%E8%B3%AA%E3%81%AE%E3%82%B0%E3%83%A9%E3%83%95%0A%20%20%20%20-%20Matplotlib%E7%B5%B1%E5%90%88%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(wd)%3A%0A%20%20%20%20%23%20%E4%B8%80%E3%81%A4%E3%81%AE%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%A7%E5%AE%8C%E5%85%A8%E3%81%AA%E5%88%86%E6%9E%90%0A%20%20%20%20%23%20%E6%B3%A2%E5%BD%A2%E3%80%81%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E3%80%81%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%B8%80%E5%BA%A6%E3%81%AB%E8%A1%A8%E7%A4%BA%0A%20%20%20%20signal_1%20%3D%20wd.generate_sin(freqs%3D%5B440%2C%20880%5D%2C%20duration%3D2.0%2C%20sampling_rate%3D16000)%0A%20%20%20%20signal_1.describe()%0A%20%20%20%20print(%22describe()%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%A7%E5%8C%85%E6%8B%AC%E7%9A%84%E3%81%AA%E5%88%86%E6%9E%90%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%22)%0A%20%20%20%20print(%22%E6%99%82%E9%96%93%E9%A0%98%E5%9F%9F%E3%80%81%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E9%A0%98%E5%9F%9F%E3%80%81%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%8C%E4%B8%80%E5%BA%A6%E3%81%AB%E7%A2%BA%E8%AA%8D%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%92%A1%20Wandas%E3%81%8C%E8%A7%A3%E6%B1%BA%E3%81%99%E3%82%8B%E5%85%B7%E4%BD%93%E7%9A%84%E3%81%AA%E5%95%8F%E9%A1%8C%0A%0A%20%20%20%20%23%23%23%20%E3%83%A6%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%82%B91%3A%20%E7%92%B0%E5%A2%83%E9%9F%B3%E3%81%AE%E5%88%86%E6%9E%90%0A%0A%20%20%20%20**%E8%AA%B2%E9%A1%8C%3A**%20%E8%A4%87%E6%95%B0%E5%9C%B0%E7%82%B9%E3%81%A7%E9%8C%B2%E9%9F%B3%E3%81%97%E3%81%9F%E7%92%B0%E5%A2%83%E9%9F%B3%E3%82%92%E6%AF%94%E8%BC%83%E3%81%97%E3%81%9F%E3%81%84%E3%81%8C%E3%80%81%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB%E7%AE%A1%E7%90%86%E3%81%8C%E8%A4%87%E9%9B%91%0A%0A%20%20%20%20**Wandas%E3%81%A7%E3%81%AE%E8%A7%A3%E6%B1%BA%3A**%0A%20%20%20%20%60%60%60python%0A%20%20%20%20%23%20%E8%A4%87%E6%95%B0%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB%E3%81%AE%E7%92%B0%E5%A2%83%E9%9F%B3%E5%88%86%E6%9E%90%0A%20%20%20%20recording%20%3D%20wd.read_wav('ambient_recording.wav')%0A%20%20%20%20%23%20%E5%85%A8%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB%E3%81%AB%E3%83%90%E3%83%B3%E3%83%89%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%82%92%E9%81%A9%E7%94%A8%0A%20%20%20%20filtered%20%3D%20recording.band_pass_filter(100%2C%208000)%0A%20%20%20%20%23%20RMS%E5%80%A4%E3%81%A7%E9%9F%B3%E5%9C%A7%E3%83%AC%E3%83%99%E3%83%AB%E3%82%92%E6%AF%94%E8%BC%83%0A%20%20%20%20rms_levels%20%3D%20filtered.rms%0A%20%20%20%20print(f%22Sound%20pressure%20levels%3A%20%7Brms_levels%7D%22)%0A%20%20%20%20filtered.plot(title%3D'Filtered%20Ambient%20Recording')%0A%20%20%20%20%60%60%60%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20wd)%3A%0A%20%20%20%20%23%20%E3%83%A6%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%82%B91%3A%20%E7%92%B0%E5%A2%83%E9%9F%B3%E3%81%AE%E5%88%86%E6%9E%90%0A%20%20%20%20%23%20%E8%A4%87%E6%95%B0%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB%E3%81%AE%E7%92%B0%E5%A2%83%E9%9F%B3%E5%88%86%E6%9E%90%0A%20%20%20%20fs%20%3D%2051200%20%20%23%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E5%91%A8%E6%B3%A2%E6%95%B0%0A%20%20%20%20_duration%20%3D%2010%20%20%23%20%E9%8C%B2%E9%9F%B3%E6%99%82%E9%96%93%EF%BC%88%E7%A7%92%EF%BC%89%0A%20%20%20%20%23%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%A8%E3%81%97%E3%81%A6%E8%A4%87%E6%95%B0%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB%E3%81%AE%E7%92%B0%E5%A2%83%E9%9F%B3%E3%82%92%E7%94%9F%E6%88%90%EF%BC%88%E7%95%B0%E3%81%AA%E3%82%8B%E5%A0%B4%E6%89%80%E3%81%AE%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%EF%BC%89%0A%20%20%20%20np.random.seed(42)%0A%20%20%20%20%23%20%E7%95%B0%E3%81%AA%E3%82%8B%E3%83%8E%E3%82%A4%E3%82%BA%E7%89%B9%E6%80%A7%E3%82%92%E6%8C%81%E3%81%A4%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB%E3%82%92%E7%94%9F%E6%88%90%0A%20%20%20%20ch1_noise%20%3D%20np.random.randn(fs%20*%20_duration)%20*%200.1%20%2B%200.05%20*%20np.sin(%0A%20%20%20%20%20%20%20%20np.linspace(0%2C%204%20*%20np.pi%2C%20fs%20*%20_duration)%0A%20%20%20%20)%20%20%23%20%E4%BD%8E%E3%83%AC%E3%83%99%E3%83%AB%E3%83%8E%E3%82%A4%E3%82%BA%20%2B%20%E4%BD%8E%E5%91%A8%E6%B3%A2%E6%88%90%E5%88%86%0A%20%20%20%20ch2_noise%20%3D%20np.random.randn(fs%20*%20_duration)%20*%200.15%20%20%23%20%E4%B8%AD%E3%83%AC%E3%83%99%E3%83%AB%E3%83%8E%E3%82%A4%E3%82%BA%0A%20%20%20%20ch3_noise%20%3D%20np.random.randn(fs%20*%20_duration)%20*%200.08%20%2B%200.03%20*%20np.sin(%0A%20%20%20%20%20%20%20%20np.linspace(0%2C%208%20*%20np.pi%2C%20fs%20*%20_duration)%0A%20%20%20%20)%20%20%23%20%E4%BD%8E%E3%83%AC%E3%83%99%E3%83%AB%E3%83%8E%E3%82%A4%E3%82%BA%20%2B%20%E9%AB%98%E5%91%A8%E6%B3%A2%E6%88%90%E5%88%86%0A%20%20%20%20recording%20%3D%20wd.from_numpy(%0A%20%20%20%20%20%20%20%20data%3Dnp.array(%5Bch1_noise%2C%20ch2_noise%2C%20ch3_noise%5D)%2C%0A%20%20%20%20%20%20%20%20sampling_rate%3Dfs%2C%0A%20%20%20%20%20%20%20%20ch_labels%3D%5B%22Location%20A%22%2C%20%22Location%20B%22%2C%20%22Location%20C%22%5D%2C%0A%20%20%20%20%20%20%20%20ch_units%3D%22Pa%22%2C%0A%20%20%20%20)%0A%20%20%20%20print(%22%E7%92%B0%E5%A2%83%E9%9F%B3%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%3A%22)%0A%20%20%20%20print(f%22%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB%E6%95%B0%3A%20%7Brecording.n_channels%7D%22)%0A%20%20%20%20print(f%22%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB%E5%90%8D%3A%20%7Brecording.labels%7D%22)%0A%20%20%20%20rms_levels%20%3D%20recording.a_weighting().rms%0A%20%20%20%20print(f%22%E5%90%84%E5%A0%B4%E6%89%80%E3%81%AEA%E7%89%B9%E6%80%A7%E9%9F%B3%E5%9C%A7%E3%83%AC%E3%83%99%E3%83%AB%20(RMS)%3A%20%7Brms_levels%7D%22)%0A%20%20%20%20recording.rms_plot(title%3D%22Filtered%20Ambient%20Recording%22%2C%20Aw%3DTrue)%0A%20%20%20%20recording.noct_spectrum().plot(%0A%20%20%20%20%20%20%20%20title%3D%22Octave%20Band%20Spectrum%20of%20Ambient%20Recording%22%2C%20Aw%3DTrue%2C%20overlay%3DTrue%2C%20ylim%3D(20%2C%2080)%0A%20%20%20%20)%0A%20%20%20%20%23%20RMS%E5%80%A4%E3%81%A7%E9%9F%B3%E5%9C%A7%E3%83%AC%E3%83%99%E3%83%AB%E3%82%92%E6%AF%94%E8%BC%83%0A%20%20%20%20%23%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%E7%B5%90%E6%9E%9C%E3%82%92%E5%8F%AF%E8%A6%96%E5%8C%96%0A%20%20%20%20%23%20%E3%82%AA%E3%82%AF%E3%82%BF%E3%83%BC%E3%83%96%E8%A7%A3%E6%9E%90%0A%20%20%20%20print(%22%E7%92%B0%E5%A2%83%E9%9F%B3%E5%88%86%E6%9E%90%E3%81%8C%E5%AE%8C%E4%BA%86%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%83%A6%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%82%B92%3A%20%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E5%90%91%E3%81%91%E3%83%87%E3%83%BC%E3%82%BF%E5%89%8D%E5%87%A6%E7%90%86%0A%0A%20%20%20%20**%E8%AA%B2%E9%A1%8C%3A**%20%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%AB%E6%A0%BC%E7%B4%8D%E3%81%95%E3%82%8C%E3%81%9F%E5%A4%A7%E9%87%8F%E3%81%AEwav%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%80%81%0A%20%20%20%20ML%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AB%E5%85%A5%E5%8A%9B%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%80%81%E5%89%8D%E5%87%A6%E7%90%86%E3%82%92%E8%A1%8C%E3%81%86%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%0A%0A%20%20%20%20**Wandas%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%AE%9F%E8%A3%85%3A**%0A%20%20%20%20%60%60%60python%0A%20%20%20%20%23%20FrameDataset%E3%81%A7%E5%A4%A7%E9%87%8F%E3%81%AEwav%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%83%90%E3%83%83%E3%83%81%E5%87%A6%E7%90%86%0A%20%20%20%20dataset%20%3D%20wd.ChannelFrameDataset.from_folder('audio_dataset%2F'%2C%20lazy_loading%3DTrue)%0A%20%20%20%20%23%20%E5%89%8D%E5%87%A6%E7%90%86%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%EF%BC%88%E3%83%AA%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E3%80%81%E3%83%88%E3%83%AA%E3%83%9F%E3%83%B3%E3%82%B0%E3%80%81%E6%AD%A3%E8%A6%8F%E5%8C%96%EF%BC%89%0A%20%20%20%20dataset%20%3D%20(dataset%0A%20%20%20%20%20%20%20%20.resample(target_sr%3D8000)%20%20%23%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%88%E7%B5%B1%E4%B8%80%0A%20%20%20%20%20%20%20%20.trim(start%3D0%2C%20end%3D5)%20%20%20%20%20%20%23%20%E9%95%B7%E3%81%95%E7%B5%B1%E4%B8%80%0A%20%20%20%20%20%20%20%20.normalize())%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E6%8C%AF%E5%B9%85%E6%AD%A3%E8%A6%8F%E5%8C%96%0A%20%20%20%20%23%20%E5%85%A8%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%ABSTFT%E3%82%92%E9%81%A9%E7%94%A8%E3%81%97%E3%81%A6%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E6%88%90%0A%20%20%20%20spectrograms%20%3D%20dataset.stft(n_fft%3D512%2C%20hop_length%3D256)%0A%20%20%20%20%23%20ML%E3%83%A2%E3%83%87%E3%83%AB%E3%81%A7%E3%81%AE%E5%87%A6%E7%90%86%E3%81%A8%E7%B5%90%E6%9E%9C%E7%A2%BA%E8%AA%8D%0A%20%20%20%20ml_results%20%3D%20spectrograms.apply(process_ml_function)%0A%20%20%20%20%23%20ISTFT%E3%81%A7%E6%99%82%E9%96%93%E9%A0%98%E5%9F%9F%E3%81%AB%E6%88%BB%E3%81%97%E3%81%A6%E5%87%A6%E7%90%86%E7%B5%90%E6%9E%9C%E3%82%92%E6%A4%9C%E8%A8%BC%0A%20%20%20%20reconstructed%20%3D%20ml_results.istft()%0A%20%20%20%20%60%60%60%0A%0A%20%20%20%20**%E3%81%93%E3%81%AE%E3%83%A6%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%82%B9%E3%81%A7%E5%AD%A6%E3%81%B6%E3%81%93%E3%81%A8%3A**%0A%20%20%20%20-%20%E5%A4%A7%E8%A6%8F%E6%A8%A1%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E3%81%AE%E5%8A%B9%E7%8E%87%E7%9A%84%E3%81%AA%E5%87%A6%E7%90%86%E6%96%B9%E6%B3%95%0A%20%20%20%20-%20ML%E5%90%91%E3%81%91%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E5%89%8D%E5%87%A6%E7%90%86%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%0A%20%20%20%20-%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E7%89%B9%E5%BE%B4%E6%8A%BD%E5%87%BA%0A%20%20%20%20-%20%E5%87%A6%E7%90%86%E7%B5%90%E6%9E%9C%E3%81%AE%E6%A4%9C%E8%A8%BC%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%23%20%E3%82%B9%E3%83%86%E3%83%83%E3%83%971%3A%20ML%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E3%81%AE%E6%BA%96%E5%82%99%0A%0A%20%20%20%20%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92%E3%83%88%E3%83%AC%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%81%AF%E3%80%81%E5%A4%A7%E9%87%8F%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%A7%E3%81%99%E3%80%82%E3%81%93%E3%81%93%E3%81%A7%E3%81%AF%E3%80%81%E5%AE%9F%E9%9A%9B%E3%81%AEwav%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%BB%A3%E3%82%8F%E3%82%8A%E3%81%AB%E3%80%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%A7%E6%A7%98%E3%80%85%E3%81%AA%E5%91%A8%E6%B3%A2%E6%95%B0%E7%89%B9%E6%80%A7%E3%82%92%E6%8C%81%E3%81%A4%E9%9F%B3%E5%A3%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E7%94%9F%E6%88%90%E3%81%97%E3%81%A6%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20wd)%3A%0A%20%20%20%20import%20os%0A%20%20%20%20import%20tempfile%0A%0A%20%20%20%20import%20wandas.utils.frame_dataset%20as%20frame_dataset_module%0A%0A%20%20%20%20channel_frame_dataset%20%3D%20frame_dataset_module.ChannelFrameDataset%0A%20%20%20%20temp_dir%20%3D%20tempfile.mkdtemp()%0A%20%20%20%20print(f%22%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%3A%20%7Btemp_dir%7D%22)%0A%20%20%20%20_sampling_rate%20%3D%2016000%0A%20%20%20%20_duration%20%3D%2010.0%0A%20%20%20%20n_files%20%3D%2010%0A%20%20%20%20for%20i%20in%20range(n_files)%3A%0A%20%20%20%20%20%20%20%20_freqs%20%3D%20%5B440%20%2B%20i%20*%20100%2C%20880%20%2B%20i%20*%2050%5D%0A%20%20%20%20%20%20%20%20audio%20%3D%20wd.generate_sin(freqs%3D_freqs%2C%20duration%3D_duration%2C%20sampling_rate%3D_sampling_rate)%0A%20%20%20%20%20%20%20%20audio%20%3D%20audio%20%2B%20np.random.randn(audio.n_samples)%20*%200.1%0A%20%20%20%20%20%20%20%20filename%20%3D%20os.path.join(temp_dir%2C%20f%22audio_sample_%7Bi%20%2B%201%3A03d%7D.wav%22)%0A%20%20%20%20%20%20%20%20audio.to_wav(filename)%0A%20%20%20%20print(f%22%7Bn_files%7D%E5%80%8B%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E9%9F%B3%E5%A3%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%22)%0A%20%20%20%20return%20channel_frame_dataset%2C%20temp_dir%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%23%20%E3%82%B9%E3%83%86%E3%83%83%E3%83%972%3A%20%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E3%81%AE%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%E3%81%A8%E5%89%8D%E5%87%A6%E7%90%86%0A%0A%20%20%20%20%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E3%82%92FrameDataset%E3%81%A7%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%E3%80%81ML%E3%83%A2%E3%83%87%E3%83%AB%E3%81%B8%E3%81%AE%E5%85%A5%E5%8A%9B%E3%81%AB%E9%81%A9%E3%81%97%E3%81%9F%E5%BD%A2%E5%BC%8F%E3%81%AB%E5%89%8D%E5%87%A6%E7%90%86%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20**%E5%89%8D%E5%87%A6%E7%90%86%E3%81%AE%E5%86%85%E5%AE%B9%3A**%0A%20%20%20%20-%20**lazy_loading%3DTrue**%3A%20%E3%83%A1%E3%83%A2%E3%83%AA%E5%8A%B9%E7%8E%87%E3%81%AE%E3%81%9F%E3%82%81%E3%80%81%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%BF%85%E8%A6%81%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%BE%E3%81%A7%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BE%E3%81%AA%E3%81%84%0A%20%20%20%20-%20**resample()**%3A%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%88%E3%82%92%E7%B5%B1%E4%B8%80%EF%BC%88ML%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AF%E5%9B%BA%E5%AE%9A%E3%83%AC%E3%83%BC%E3%83%88%E3%82%92%E6%9C%9F%E5%BE%85%EF%BC%89%0A%20%20%20%20-%20**trim()**%3A%20%E9%9F%B3%E5%A3%B0%E3%81%AE%E9%95%B7%E3%81%95%E3%82%92%E7%B5%B1%E4%B8%80%EF%BC%88%E3%83%90%E3%83%83%E3%83%81%E5%87%A6%E7%90%86%E3%81%AE%E3%81%9F%E3%82%81%EF%BC%89%0A%0A%20%20%20%20**%E3%81%AA%E3%81%9C%E5%89%8D%E5%87%A6%E7%90%86%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%8B%3A**%0A%20%20%20%20-%20ML%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AF%E5%85%A5%E5%8A%9B%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%BD%A2%E5%BC%8F%E3%81%8C%E7%B5%B1%E4%B8%80%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E5%89%8D%E6%8F%90%E3%81%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%0A%20%20%20%20-%20%E7%95%B0%E3%81%AA%E3%82%8B%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%88%E3%82%84%E9%95%B7%E3%81%95%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E7%B5%B1%E4%B8%80%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%E3%80%81%E3%83%90%E3%83%83%E3%83%81%E5%87%A6%E7%90%86%E3%81%8C%E5%8F%AF%E8%83%BD%E3%81%AB%E3%81%AA%E3%82%8B%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(channel_frame_dataset%2C%20temp_dir)%3A%0A%20%20%20%20%23%20FrameDataset%E3%81%A7%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%8B%E3%82%89%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%0A%20%20%20%20dataset%20%3D%20channel_frame_dataset.from_folder(%0A%20%20%20%20%20%20%20%20folder_path%3Dtemp_dir%2C%0A%20%20%20%20%20%20%20%20lazy_loading%3DTrue%2C%20%20%23%20%E3%83%A1%E3%83%A2%E3%83%AA%E5%8A%B9%E7%8E%87%E3%81%AE%E3%81%9F%E3%82%81%E9%81%85%E5%BB%B6%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%0A%20%20%20%20)%0A%0A%20%20%20%20print(%22%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E6%83%85%E5%A0%B1%3A%22)%0A%20%20%20%20print(f%22%20%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E6%95%B0%3A%20%7Blen(dataset)%7D%22)%0A%20%20%20%20print(f%22%20%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%88%3A%20%7Bdataset%5B0%5D.sampling_rate%20if%20dataset%5B0%5D%20else%20'N%2FA'%7D%20Hz%22)%0A%20%20%20%20print(f%22%20%20%E9%95%B7%E3%81%95%3A%20%7Bdataset%5B0%5D.duration%20if%20dataset%5B0%5D%20else%20'N%2FA'%7D%20%E7%A7%92%22)%0A%0A%20%20%20%20dataset%20%3D%20(%0A%20%20%20%20%20%20%20%20dataset.resample(target_sr%3D8000)%20%20%23%20%E5%BF%85%E8%A6%81%E3%81%AB%E5%BF%9C%E3%81%98%E3%81%A6%E3%83%AA%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%0A%20%20%20%20%20%20%20%20.trim(start%3D0%2C%20end%3D5)%20%20%23%20%E9%95%B7%E3%81%95%E3%82%92%E6%8C%87%E5%AE%9A%0A%20%20%20%20%20%20%20%20.normalize()%20%20%23%20%E6%AD%A3%E8%A6%8F%E5%8C%96%0A%20%20%20%20)%0A%20%20%20%20print(%22%E3%83%AA%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E5%BE%8C%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E6%83%85%E5%A0%B1%3A%22)%0A%20%20%20%20print(f%22%20%20%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E3%82%B5%E3%82%A4%E3%82%BA%3A%20%7Blen(dataset)%7D%22)%0A%20%20%20%20print(f%22%20%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%88%3A%20%7Bdataset%5B0%5D.sampling_rate%20if%20dataset%5B0%5D%20else%20'N%2FA'%7D%20Hz%22)%0A%20%20%20%20print(f%22%20%20%E9%95%B7%E3%81%95%3A%20%7Bdataset%5B0%5D.duration%20if%20dataset%5B0%5D%20else%20'N%2FA'%7D%20%E7%A7%92%22)%0A%0A%20%20%20%20%23%20%E5%85%A8%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%ABSTFT%E3%82%92%E9%81%A9%E7%94%A8%E3%81%97%E3%81%A6%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E6%88%90%0A%20%20%20%20spectrogram_dataset%20%3D%20dataset.stft(n_fft%3D512%2C%20hop_length%3D256)%0A%0A%20%20%20%20print(%22%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E4%BD%9C%E6%88%90%E5%AE%8C%E4%BA%86%3A%22)%0A%20%20%20%20print(f%22%20%20%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E3%82%B5%E3%82%A4%E3%82%BA%3A%20%7Blen(spectrogram_dataset)%7D%22)%0A%20%20%20%20print(f%22%20%20%E5%91%A8%E6%B3%A2%E6%95%B0%E3%83%93%E3%83%B3%E6%95%B0%3A%20%7Bspectrogram_dataset%5B0%5D.n_freq_bins%20if%20spectrogram_dataset%5B0%5D%20else%20'N%2FA'%7D%22)%0A%20%20%20%20print(f%22%20%20%E6%99%82%E9%96%93%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E6%95%B0%3A%20%7Bspectrogram_dataset%5B0%5D.n_frames%20if%20spectrogram_dataset%5B0%5D%20else%20'N%2FA'%7D%22)%0A%0A%20%20%20%20%23%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%A8%E3%81%97%E3%81%A6%E6%9C%80%E5%88%9D%E3%81%AE%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E8%A1%A8%E7%A4%BA%0A%20%20%20%20spectrogram_dataset%5B0%5D%5B0%5D.plot(title%3D%22Spectrogram%20Sample%20for%20ML%20Input%22)%0A%20%20%20%20return%20(spectrogram_dataset%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%23%20%E3%82%B9%E3%83%86%E3%83%83%E3%83%973%3A%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E5%A4%89%E6%8F%9B%E3%81%A8ML%E5%87%A6%E7%90%86%0A%0A%20%20%20%20%E5%89%8D%E5%87%A6%E7%90%86%E6%B8%88%E3%81%BF%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%97%E3%80%81ML%E3%83%A2%E3%83%87%E3%83%AB%E3%81%A7%E3%81%AE%E5%87%A6%E7%90%86%E3%82%92%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%83%88%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20**STFT%20(Short-Time%20Fourier%20Transform)%20%E3%81%AE%E5%BD%B9%E5%89%B2%3A**%0A%20%20%20%20-%20%E6%99%82%E9%96%93-%E5%91%A8%E6%B3%A2%E6%95%B0%E8%A7%A3%E6%9E%90%E3%81%AB%E3%82%88%E3%82%8A%E3%80%81%E4%BF%A1%E5%8F%B7%E3%81%AE%E6%99%82%E9%96%93%E5%A4%89%E5%8C%96%E3%82%92%E6%8D%89%E3%81%88%E3%82%8B%0A%20%20%20%20-%20ML%E3%83%A2%E3%83%87%E3%83%AB%EF%BC%88CNN%E3%81%AA%E3%81%A9%EF%BC%89%E3%81%AF%E7%94%BB%E5%83%8F%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA2D%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%85%A5%E5%8A%9B%E3%81%A8%E3%81%97%E3%81%A6%E6%89%B1%E3%81%84%E3%82%84%E3%81%99%E3%81%84%0A%20%20%20%20-%20n_fft%3D512%3A%20%E5%91%A8%E6%B3%A2%E6%95%B0%E5%88%86%E8%A7%A3%E8%83%BD%E3%81%A8%E6%99%82%E9%96%93%E5%88%86%E8%A7%A3%E8%83%BD%E3%81%AE%E3%83%90%E3%83%A9%E3%83%B3%E3%82%B9%0A%20%20%20%20-%20hop_length%3D256%3A%20%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%81%AE%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%A9%E3%83%83%E3%83%97%EF%BC%8850%25%EF%BC%89%0A%0A%20%20%20%20**ML%E5%87%A6%E7%90%86%E3%81%AE%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%3A**%0A%20%20%20%20-%20%E5%AE%9F%E9%9A%9B%E3%81%AEML%E3%83%A2%E3%83%87%E3%83%AB%EF%BC%88TensorFlow%2C%20PyTorch%E3%81%AA%E3%81%A9%EF%BC%89%E3%81%AB%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E5%85%A5%E5%8A%9B%0A%20%20%20%20-%20%E3%81%93%E3%81%93%E3%81%A7%E3%81%AF%E7%B0%A1%E6%98%93%E7%9A%84%E3%81%AA%E3%83%8E%E3%82%A4%E3%82%BA%E9%99%A4%E5%8E%BB%E3%82%92%E4%BE%8B%E3%81%A8%E3%81%97%E3%81%A6%E5%AE%9F%E8%A3%85%0A%20%20%20%20-%20apply()%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E5%85%A8%E4%BD%93%E3%81%AB%E5%87%A6%E7%90%86%E3%82%92%E9%81%A9%E7%94%A8%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20spectrogram_dataset)%3A%0A%20%20%20%20from%20wandas.frames.spectrogram%20import%20SpectrogramFrame%0A%0A%20%20%20%20def%20process_ml(frame%3A%20SpectrogramFrame)%20-%3E%20SpectrogramFrame%3A%0A%20%20%20%20%20%20%20%20%23%20%E3%83%80%E3%83%9F%E3%83%BC%E9%96%A2%E6%95%B0%E3%80%81%E5%AE%9F%E9%9A%9B%E3%81%AB%E3%81%AFML%E3%83%A2%E3%83%87%E3%83%AB%E3%81%B8%E3%81%AE%E5%85%A5%E5%8A%9B%E5%87%A6%E7%90%86%E3%82%92%E5%AE%9F%E8%A3%85%0A%20%20%20%20%20%20%20%20previous%20%3D%20frame%5B0%5D%0A%20%20%20%20%20%20%20%20print(f%22Processing%20ML%20input%20with%20shape%3A%20%7Bprevious.shape%7D%22)%0A%0A%20%20%20%20%20%20%20%20data%20%3D%20previous.data%0A%0A%20%20%20%20%20%20%20%20%23%20%E3%81%93%E3%81%93%E3%81%A7%E5%AE%9F%E9%9A%9B%E3%81%AEML%E5%87%A6%E7%90%86%E3%82%92%E8%A1%8C%E3%81%86%0A%20%20%20%20%20%20%20%20data%5Bnp.abs(data)%20%3C%200.05%5D%20%3D%200%20%20%23%20%E7%B0%A1%E6%98%93%E3%81%AA%E3%83%8E%E3%82%A4%E3%82%BA%E9%99%A4%E5%8E%BB%0A%20%20%20%20%20%20%20%20ml_out_data%20%3D%20data%0A%0A%20%20%20%20%20%20%20%20%23%20ML%E5%87%A6%E7%90%86%E7%B5%90%E6%9E%9C%E3%82%92SpectrogramFrame%E3%81%A8%E3%81%97%E3%81%A6%E8%BF%94%E3%81%99%0A%20%20%20%20%20%20%20%20ml_out%20%3D%20SpectrogramFrame.from_numpy(%0A%20%20%20%20%20%20%20%20%20%20%20%20data%3Dml_out_data%2C%20%20%23%20%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB%E6%AC%A1%E5%85%83%E3%82%92%E8%BF%BD%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20sampling_rate%3Dframe.sampling_rate%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20n_fft%3Dframe.n_fft%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hop_length%3Dframe.hop_length%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20win_length%3Dframe.win_length%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20window%3Dframe.window%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20label%3Df%22ML(%7Bframe.label%7D)%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20metadata%3Dframe.metadata%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20operation_history%3Dframe.operation_history%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20channel_metadata%3D%5Bframe.channels%5B0%5D%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20previous%3Dprevious%2C%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20return%20ml_out%0A%0A%20%20%20%20ml_results%20%3D%20spectrogram_dataset.apply(process_ml)%0A%20%20%20%20ml_results%5B0%5D.previous.plot(vmin%3D-60%2C%20vmax%3D0%2C%20title%3D%22Original%20Spectrogram%22)%0A%20%20%20%20ml_results%5B0%5D.plot(vmin%3D-60%2C%20vmax%3D0%2C%20title%3D%22ML%20Spectrogram%22)%0A%20%20%20%20return%20(ml_results%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%23%20%E3%82%B9%E3%83%86%E3%83%83%E3%83%974%3A%20%E5%87%A6%E7%90%86%E7%B5%90%E6%9E%9C%E3%81%AE%E6%A4%9C%E8%A8%BC%0A%0A%20%20%20%20ML%E5%87%A6%E7%90%86%E3%81%AE%E7%B5%90%E6%9E%9C%E3%82%92ISTFT%20(Inverse%20STFT)%20%E3%81%A7%E6%99%82%E9%96%93%E9%A0%98%E5%9F%9F%E3%81%AB%E6%88%BB%E3%81%97%E3%80%81%E5%87%A6%E7%90%86%E5%89%8D%E5%BE%8C%E3%81%AE%E6%AF%94%E8%BC%83%E3%82%92%E8%A1%8C%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20**%E6%A4%9C%E8%A8%BC%E3%81%AE%E9%87%8D%E8%A6%81%E6%80%A7%3A**%0A%20%20%20%20-%20ML%E5%87%A6%E7%90%86%E3%81%8C%E4%BF%A1%E5%8F%B7%E3%81%AE%E9%87%8D%E8%A6%81%E3%81%AA%E7%89%B9%E5%BE%B4%E3%82%92%E4%BF%9D%E6%8C%81%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E7%A2%BA%E8%AA%8D%0A%20%20%20%20-%20%E5%87%A6%E7%90%86%E7%B5%90%E6%9E%9C%E3%81%8C%E5%85%83%E3%81%AE%E4%BF%A1%E5%8F%B7%E3%81%A8%E6%95%B4%E5%90%88%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8B%E3%81%8B%E6%A4%9C%E8%A8%BC%0A%20%20%20%20-%20describe()%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%A7%E5%8C%85%E6%8B%AC%E7%9A%84%E3%81%AA%E5%88%86%E6%9E%90%EF%BC%88%E6%B3%A2%E5%BD%A2%E3%83%BB%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E3%83%BB%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%EF%BC%89%0A%0A%20%20%20%20**ISTFT%E3%81%AE%E5%BD%B9%E5%89%B2%3A**%0A%20%20%20%20-%20%E5%91%A8%E6%B3%A2%E6%95%B0%E9%A0%98%E5%9F%9F%E3%81%AE%E5%87%A6%E7%90%86%E7%B5%90%E6%9E%9C%E3%82%92%E6%99%82%E9%96%93%E9%A0%98%E5%9F%9F%E3%81%AB%E6%88%BB%E3%81%99%0A%20%20%20%20-%20%E4%BA%BA%E9%96%93%E3%81%8C%E8%81%9E%E3%81%8D%E5%8F%96%E3%82%8A%E3%82%84%E3%81%99%E3%81%84%E5%BD%A2%E3%81%A7%E7%B5%90%E6%9E%9C%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%A7%E3%81%8D%E3%82%8B%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(ml_results)%3A%0A%20%20%20%20%23%20ISTFT%E3%81%A7%E6%99%82%E9%96%93%E4%BF%A1%E5%8F%B7%E3%81%AB%E5%85%83%E3%81%97%E3%81%A6%E5%87%A6%E7%90%86%E7%B5%90%E6%9E%9C%E3%82%92%E7%A2%BA%E8%AA%8D%0A%20%20%20%20ml_results%5B0%5D.previous.istft().describe()%0A%20%20%20%20ml_results%5B0%5D.istft().describe()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%23%20%E3%82%B9%E3%83%86%E3%83%83%E3%83%975%3A%20%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AE%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%0A%0A%20%20%20%20%E4%B8%80%E6%99%82%E7%9A%84%E3%81%AB%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E3%82%92%E5%89%8A%E9%99%A4%E3%81%97%E3%80%81%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%92%E8%A7%A3%E6%94%BE%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(temp_dir)%3A%0A%20%20%20%20%23%20%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%0A%20%20%20%20import%20shutil%0A%0A%20%20%20%20shutil.rmtree(temp_dir)%0A%20%20%20%20print(f%22%E4%B8%80%E6%99%82%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%82%92%E5%89%8A%E9%99%A4%3A%20%7Btemp_dir%7D%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%83%A6%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%82%B93%3A%20%E5%93%81%E8%B3%AA%E7%AE%A1%E7%90%86%E3%81%A8%E7%95%B0%E5%B8%B8%E6%A4%9C%E7%9F%A5%0A%0A%20%20%20%20**%E8%AA%B2%E9%A1%8C%3A**%20%E8%A3%BD%E9%80%A0%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%AE%E6%8C%AF%E5%8B%95%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E7%9B%A3%E8%A6%96%E3%81%97%E3%80%81%E7%95%B0%E5%B8%B8%E3%82%92%E6%A4%9C%E7%9F%A5%E3%81%97%E3%81%9F%E3%81%84%0A%0A%20%20%20%20**Wandas%E3%81%A7%E3%81%AE%E8%A7%A3%E6%B1%BA%3A**%0A%20%20%20%20%60%60%60python%0A%20%20%20%20%23%20%E6%8C%AF%E5%8B%95%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%83%90%E3%83%83%E3%83%81%E5%87%A6%E7%90%86%E3%81%A8%E7%89%B9%E5%BE%B4%E6%8A%BD%E5%87%BA%0A%20%20%20%20dataset%20%3D%20wd.ChannelFrameDataset.from_folder('vibration_data%2F')%0A%20%20%20%20spectrograms%20%3D%20dataset.stft()%0A%20%20%20%20%23%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E7%89%B9%E5%BE%B4%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%8F%E7%95%B0%E5%B8%B8%E6%A4%9C%E7%9F%A5%0A%20%20%20%20%60%60%60%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20wd)%3A%0A%20%20%20%20%23%20%E6%8C%AF%E5%8B%95%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%83%90%E3%83%83%E3%83%81%E5%87%A6%E7%90%86%E3%81%A8%E7%89%B9%E5%BE%B4%E6%8A%BD%E5%87%BA%0A%0A%20%20%20%20%23%20%E6%8C%AF%E5%8B%95%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%EF%BC%88%E6%AD%A3%E5%B8%B8%E3%83%87%E3%83%BC%E3%82%BF%E3%81%A8%E7%95%B0%E5%B8%B8%E3%83%87%E3%83%BC%E3%82%BF%EF%BC%89%0A%20%20%20%20np.random.seed(42)%0A%20%20%20%20normal_vibration%20%3D%20wd.from_numpy(%0A%20%20%20%20%20%20%20%20data%3Dnp.random.randn(1%2C%2016000)%20*%200.1%2C%20%20%23%20%E6%AD%A3%E5%B8%B8%E6%8C%AF%E5%8B%95%EF%BC%881%E7%A7%92%E9%96%93%EF%BC%89%0A%20%20%20%20%20%20%20%20sampling_rate%3D16000%2C%0A%20%20%20%20%20%20%20%20ch_labels%3D%5B%22Normal%20Vibration%22%5D%2C%0A%20%20%20%20)%0A%0A%20%20%20%20abnormal_vibration%20%3D%20wd.from_numpy(%0A%20%20%20%20%20%20%20%20data%3Dnp.random.randn(1%2C%2016000)%20*%200.3%20%2B%20np.sin(np.linspace(0%2C%204%20*%20np.pi%2C%2016000))%2C%20%20%23%20%E7%95%B0%E5%B8%B8%E6%8C%AF%E5%8B%95%EF%BC%881%E7%A7%92%E9%96%93%EF%BC%89%0A%20%20%20%20%20%20%20%20sampling_rate%3D16000%2C%0A%20%20%20%20%20%20%20%20ch_labels%3D%5B%22Abnormal%20Vibration%22%5D%2C%0A%20%20%20%20)%0A%0A%20%20%20%20print(%22%E6%8C%AF%E5%8B%95%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E6%BA%96%E5%82%99%3A%22)%0A%20%20%20%20normal_vibration.info()%0A%20%20%20%20abnormal_vibration.info()%0A%0A%20%20%20%20%23%20%E7%89%B9%E5%BE%B4%E6%8A%BD%E5%87%BA%EF%BC%88RMS%E5%80%A4%E3%82%92%E4%BD%BF%E7%94%A8%EF%BC%89%0A%20%20%20%20def%20extract_features(vibration_data%3A%20wd.ChannelFrame)%20-%3E%20tuple%5Bfloat%2C%20wd.ChannelFrame%5D%3A%0A%20%20%20%20%20%20%20%20preprocessed%20%3D%20vibration_data.band_pass_filter(20%2C%201000)%0A%20%20%20%20%20%20%20%20rms%20%3D%20preprocessed.rms%0A%20%20%20%20%20%20%20%20return%20(rms%5B0%5D%2C%20preprocessed)%0A%0A%20%20%20%20normal_features%2C%20normal_preprocessed%20%3D%20extract_features(normal_vibration)%0A%20%20%20%20abnormal_features%2C%20abnormal_preprocessed%20%3D%20extract_features(abnormal_vibration)%0A%20%20%20%20print(%22%E7%89%B9%E5%BE%B4%E6%8A%BD%E5%87%BA%E5%AE%8C%E4%BA%86%3A%22)%0A%20%20%20%20print(f%22%E6%AD%A3%E5%B8%B8%E3%83%87%E3%83%BC%E3%82%BF%20RMS%3A%20%7Bnormal_features%3A.3f%7D%22)%0A%20%20%20%20print(f%22%E7%95%B0%E5%B8%B8%E3%83%87%E3%83%BC%E3%82%BF%20RMS%3A%20%7Babnormal_features%3A.3f%7D%22)%0A%0A%20%20%20%20%23%20%E7%95%B0%E5%B8%B8%E6%A4%9C%E7%9F%A5%EF%BC%88%E7%B0%A1%E6%98%93%E7%9A%84%E3%81%AA%E9%96%BE%E5%80%A4%E3%83%99%E3%83%BC%E3%82%B9%EF%BC%89%0A%20%20%20%20threshold%20%3D%20(normal_features%20%2B%20abnormal_features)%20%2F%202%0A%20%20%20%20print(f%22%E9%96%BE%E5%80%A4%3A%20%7Bthreshold%3A.3f%7D%22)%0A%0A%20%20%20%20if%20abnormal_features%20%3E%20threshold%3A%0A%20%20%20%20%20%20%20%20print(%22%E2%9A%A0%EF%B8%8F%20%E7%95%B0%E5%B8%B8%E3%81%8C%E6%A4%9C%E7%9F%A5%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%EF%BC%81%22)%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20print(%22%E2%9C%85%20%E6%AD%A3%E5%B8%B8%E3%81%AA%E7%8A%B6%E6%85%8B%E3%81%A7%E3%81%99%22)%0A%0A%20%20%20%20%23%20%E6%AD%A3%E5%B8%B8%E3%83%87%E3%83%BC%E3%82%BF%E3%81%A8%E7%95%B0%E5%B8%B8%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E6%AF%94%E8%BC%83%0A%20%20%20%20ax%20%3D%20normal_preprocessed.rms_plot()%0A%20%20%20%20abnormal_preprocessed.rms_plot(ax%3Dax%2C%20title%3D%22RMS%20Comparison%22)%0A%20%20%20%20return%20abnormal_preprocessed%2C%20normal_preprocessed%0A%0A%0A%40app.cell%0Adef%20_(abnormal_preprocessed%2C%20normal_preprocessed)%3A%0A%20%20%20%20%23%20%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E8%A9%B3%E7%B4%B0%E8%A7%A3%E6%9E%90%E3%81%A8%E8%A6%96%E8%81%B4%0A%20%20%20%20normal_preprocessed.describe()%0A%20%20%20%20abnormal_preprocessed.describe()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%8E%A8%20Wandas%E3%81%AE%E7%89%B9%E5%BE%B4%E3%82%92%E4%BD%93%E9%A8%93%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86%0A%0A%20%20%20%20%23%23%23%20%E6%9C%80%E5%88%9D%E3%81%AEWandas%E3%82%B3%E3%83%BC%E3%83%89%0A%0A%20%20%20%20Wandas%E3%81%AE%E4%BE%BF%E5%88%A9%E3%81%95%E3%82%92%E4%B8%80%E7%B7%92%E3%81%AB%E7%A2%BA%E3%81%8B%E3%82%81%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plt%2C%20wd)%3A%0A%20%20%20%20%23%20Wandas%E3%82%92%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%0A%20%20%20%20plt.rcParams%5B%22figure.figsize%22%5D%20%3D%20(10%2C%206)%0A%20%20%20%20print(f%22Wandas%20version%3A%20%7Bwd.__version__%7D%22)%0A%20%20%20%20%23%20%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%83%97%E3%83%AD%E3%83%83%E3%83%88%E8%A8%AD%E5%AE%9A%0A%20%20%20%20%23%20'%25matplotlib%20widget'%20command%20supported%20automatically%20in%20marimo%0A%20%20%20%20print(%22Wandas%E3%81%8C%E6%AD%A3%E5%B8%B8%E3%81%AB%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%EF%BC%81%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(wd)%3A%0A%20%20%20%20%23%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E4%BF%A1%E5%8F%B7%E3%82%92%E7%94%9F%E6%88%90%0A%20%20%20%20signal_2%20%3D%20wd.generate_sin(freqs%3D%5B1000%2C%204000%5D%2C%20duration%3D2.0%2C%20sampling_rate%3D16000)%0A%20%20%20%20print(%22%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E4%BF%A1%E5%8F%B7%3A%22)%0A%20%20%20%20signal_2.info()%20%20%23%202%E7%A7%92%E9%96%93%0A%20%20%20%20return%20(signal_2%2C)%0A%0A%0A%40app.cell%0Adef%20_(signal_2)%3A%0A%20%20%20%20%23%20Wandas%E3%81%AEdescribe()%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%A7%E5%AE%8C%E5%85%A8%E3%81%AA%E5%88%86%E6%9E%90%E3%82%92%E8%A1%A8%E7%A4%BA%0A%20%20%20%20signal_2.describe()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**%F0%9F%8E%89%20%E3%81%9F%E3%81%A3%E3%81%9F1%E8%A1%8C%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%81%A7%3A**%0A%20%20%20%20-%20%E6%99%82%E9%96%93%E9%A0%98%E5%9F%9F%E3%81%AE%E6%B3%A2%E5%BD%A2%0A%20%20%20%20-%20%E5%91%A8%E6%B3%A2%E6%95%B0%E9%A0%98%E5%9F%9F%E3%81%AE%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%0A%20%20%20%20-%20%E6%99%82%E9%96%93%E5%91%A8%E6%B3%A2%E6%95%B0%E9%A0%98%E5%9F%9F%E3%81%AE%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%0A%0A%20%20%20%20%E3%81%8C%E4%B8%80%E5%BA%A6%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%EF%BC%81%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(signal_2)%3A%0A%20%20%20%20%23%20%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3%E3%81%A7%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%0A%20%20%20%20processed%20%3D%20signal_2.low_pass_filter(cutoff%3D2000).normalize()%0A%20%20%20%20print(%22%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E5%87%A6%E7%90%86%E3%81%8C%E5%AE%8C%E4%BA%86%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%EF%BC%81%22)%0A%20%20%20%20print(f%22%E5%87%A6%E7%90%86%E5%B1%A5%E6%AD%B4%3A%20%7B%5Bop%5B'operation'%5D%20for%20op%20in%20processed.operation_history%5D%7D%22)%20%20%23%20660Hz%E3%83%AD%E3%83%BC%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%20%20%23%20%E6%AD%A3%E8%A6%8F%E5%8C%96%0A%20%20%20%20return%20(processed%2C)%0A%0A%0A%40app.cell%0Adef%20_(plt%2C%20processed%2C%20signal_2)%3A%0A%20%20%20%20(_fig%2C%20(_ax1%2C%20_ax2))%20%3D%20plt.subplots(1%2C%202%2C%20figsize%3D(12%2C%204))%0A%20%20%20%20signal_2.fft().plot(ax%3D_ax1%2C%20title%3D%22Original%20Signal%20Spectrum%22)%0A%20%20%20%20processed.fft().plot(ax%3D_ax2%2C%20title%3D%22Filtered%20Signal%20Spectrum%22)%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%92%A1%20Wandas%E3%82%92%E4%BD%BF%E3%81%86%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%0A%0A%20%20%20%20%23%23%23%201.%20**%E7%94%9F%E7%94%A3%E6%80%A7%E3%81%AE%E5%90%91%E4%B8%8A**%0A%20%20%20%20-%20%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%92%E5%8A%B9%E7%8E%87%E7%9A%84%E3%81%AB%E6%A7%8B%E7%AF%89%0A%20%20%20%20-%20%E7%9B%B4%E6%84%9F%E7%9A%84%E3%81%AAAPI%E3%81%A7%E5%AD%A6%E7%BF%92%E3%82%B3%E3%82%B9%E3%83%88%E3%81%8C%E4%BD%8E%E3%81%84%0A%20%20%20%20-%20%E7%B5%B1%E5%90%88%E3%81%95%E3%82%8C%E3%81%9F%E3%83%84%E3%83%BC%E3%83%AB%E3%81%A7%E4%BD%9C%E6%A5%AD%E3%81%8C%E3%82%B9%E3%83%A0%E3%83%BC%E3%82%BA%0A%0A%20%20%20%20%23%23%23%202.%20**%E4%BF%A1%E9%A0%BC%E6%80%A7%E3%81%AE%E5%90%91%E4%B8%8A**%0A%20%20%20%20-%20%E5%9E%8B%E5%AE%89%E5%85%A8%E6%80%A7%E3%81%A7%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E3%82%92%E9%98%B2%E3%81%90%0A%20%20%20%20-%20%E5%87%A6%E7%90%86%E5%B1%A5%E6%AD%B4%E3%81%A7%E5%86%8D%E7%8F%BE%E6%80%A7%E3%82%92%E7%A2%BA%E4%BF%9D%0A%20%20%20%20-%20%E5%8C%85%E6%8B%AC%E7%9A%84%E3%81%AA%E3%83%86%E3%82%B9%E3%83%88%E3%81%A7%E5%93%81%E8%B3%AA%E3%82%92%E4%BF%9D%E8%A8%BC%0A%0A%20%20%20%20%23%23%23%203.%20**%E6%8B%A1%E5%BC%B5%E6%80%A7%E3%81%AE%E9%AB%98%E3%81%95**%0A%20%20%20%20-%20Dask%E7%B5%B1%E5%90%88%E3%81%A7%E5%A4%A7%E8%A6%8F%E6%A8%A1%E3%83%87%E3%83%BC%E3%82%BF%E5%AF%BE%E5%BF%9C%0A%20%20%20%20-%20%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E5%8C%96%E3%81%A7%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E5%87%A6%E7%90%86%E3%82%92%E8%BF%BD%E5%8A%A0%0A%20%20%20%20-%20%E3%82%A8%E3%82%B3%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E7%B5%B1%E5%90%88%EF%BC%88pandas%2C%20NumPy%2C%20Matplotlib%EF%BC%89%0A%0A%20%20%20%20%23%23%23%204.%20**%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%81%A8%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88**%0A%20%20%20%20-%20%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%A7%E9%80%8F%E6%98%8E%E6%80%A7%E3%81%8C%E9%AB%98%E3%81%84%0A%20%20%20%20-%20%E6%B4%BB%E7%99%BA%E3%81%AA%E9%96%8B%E7%99%BA%E3%81%A7%E7%B6%99%E7%B6%9A%E7%9A%84%E3%81%AA%E6%94%B9%E5%96%84%0A%20%20%20%20-%20%E5%8C%85%E6%8B%AC%E7%9A%84%E3%81%AA%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%A7%E5%AD%A6%E7%BF%92%E3%81%97%E3%82%84%E3%81%99%E3%81%84%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%8E%AF%20%E3%81%93%E3%82%93%E3%81%AA%E4%BA%BA%E3%81%AB%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%0A%0A%20%20%20%20%23%23%23%20%E3%81%93%E3%82%93%E3%81%AA%E6%96%B9%E3%81%AB%E3%81%B4%E3%81%A3%E3%81%9F%E3%82%8A%0A%20%20%20%20-%20**%E9%9F%B3%E9%9F%BF%E3%83%BB%E6%8C%AF%E5%8B%95%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2**%3A%20%E6%B8%AC%E5%AE%9A%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%8A%B9%E7%8E%87%E7%9A%84%E3%81%AA%E5%88%86%E6%9E%90%E3%82%92%E3%81%97%E3%81%9F%E3%81%84%0A%20%20%20%20-%20**%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%83%86%E3%82%A3%E3%82%B9%E3%83%88**%3A%20%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%82%92ML%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%AB%E7%B5%B1%E5%90%88%E3%81%97%E3%81%9F%E3%81%84%0A%20%20%20%20-%20**%E7%A0%94%E7%A9%B6%E8%80%85**%3A%20%E5%86%8D%E7%8F%BE%E5%8F%AF%E8%83%BD%E3%81%A7%E4%BF%A1%E9%A0%BC%E6%80%A7%E3%81%AE%E9%AB%98%E3%81%84%E5%88%86%E6%9E%90%E3%82%92%E8%A1%8C%E3%81%84%E3%81%9F%E3%81%84%0A%20%20%20%20-%20**%E5%AD%A6%E7%94%9F**%3A%20%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%82%92%E7%9B%B4%E6%84%9F%E7%9A%84%E3%81%AB%E5%AD%A6%E3%81%B3%E3%81%9F%E3%81%84%0A%0A%20%20%20%20%23%23%23%20%E3%81%99%E3%81%90%E3%81%AB%E5%A7%8B%E3%82%81%E3%82%89%E3%82%8C%E3%82%8B%0A%20%20%20%20-%20**Python%E7%B5%8C%E9%A8%93%E8%80%85**%3A%20pandas%E3%82%84NumPy%E3%82%92%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8C%E3%81%B0OK%0A%20%20%20%20-%20**%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E5%88%9D%E5%BF%83%E8%80%85**%3A%20%E5%B0%82%E9%96%80%E7%9F%A5%E8%AD%98%E3%81%8C%E3%81%AA%E3%81%8F%E3%81%A6%E3%82%82%E4%BD%BF%E3%81%88%E3%82%8B%0A%20%20%20%20-%20**%E5%A4%A7%E8%A6%8F%E6%A8%A1%E3%83%87%E3%83%BC%E3%82%BF%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC**%3A%20Dask%E3%81%A7%E3%83%A1%E3%83%A2%E3%83%AA%E5%8A%B9%E7%8E%87%E7%9A%84%E3%81%AB%E5%87%A6%E7%90%86%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%93%9A%20%E6%AC%A1%E3%81%AE%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%0A%0A%20%20%20%20Wandas%E3%81%AE%E5%8F%AF%E8%83%BD%E6%80%A7%E3%82%92%E6%84%9F%E3%81%98%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%97%E3%81%9F%E3%81%8B%EF%BC%9F%0A%0A%20%20%20%20**%E6%AC%A1%E3%81%AE%E3%83%8E%E3%83%BC%E3%83%88%E3%83%96%E3%83%83%E3%82%AF**%3A%20%5B01_getting_started.ipynb%5D(01_getting_started.ipynb)%0A%0A%20%20%20%20%E3%81%93%E3%81%93%E3%81%A7%E3%81%AF%E5%AE%9F%E9%9A%9B%E3%81%ABWandas%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%80%81%E7%92%B0%E5%A2%83%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%A6%E3%80%81%E6%9C%80%E5%88%9D%E3%81%AE%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%82%92%E8%A1%8C%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%E3%80%82%0A%0A%20%20%20%20---%0A%0A%20%20%20%20**%E3%81%95%E3%81%82%E3%80%81%E4%B8%80%E7%B7%92%E3%81%AB%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%81%AE%E4%B8%96%E7%95%8C%E3%82%92%E6%8E%A2%E7%B4%A2%E3%81%97%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%EF%BC%81**%20%F0%9F%9A%80%0A%0A%20%20%20%20%E8%B3%AA%E5%95%8F%E3%81%8C%E3%81%82%E3%82%8C%E3%81%B0%E3%80%81%5BGitHub%20Issues%5D(https%3A%2F%2Fgithub.com%2Fkasahart%2Fwandas%2Fissues)%20%E3%82%84%0A%20%20%20%20%5BDiscord%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%5D(https%3A%2F%2Fdiscord.gg%2Fwandas)%20%E3%81%BE%E3%81%A7%E3%81%8A%E6%B0%97%E8%BB%BD%E3%81%AB%E3%81%A9%E3%81%86%E3%81%9E%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
6c34ad7745474817893a9ee851e707a5