見出し画像

ChatGPTにリラックス・集中できる音を生成してもらおう

日々の生活の中で、リラックスや集中力を高めるために音の力を借りることが増えてきたように感じます。家の気密性が高まったためでしょうか。あるいは、騒音公害に悩まされているためでしょうか。

多くの人が、環境音やノイズの特性を活かして雑音を遮断したり、気持ちを落ち着ける手段としてホワイトノイズやピンクノイズなどを取り入れています。しかし、音楽ストリーミングサービスやアプリに頼らず、自分で音を生成できるというのは、なかなか気づきにくいアイデアかもしれません。

今回は、ChatGPTのPython実行環境を活用して、リラックスや集中を助ける音を自分で作成してみる試みをご紹介しています。特に、ホワイトノイズブラウンノイズなどのノイズを生成する方法に焦点を当てて、どのような効果が期待できるのかについても解説していきます。

なお、結局Pythonコードを書いてもらって、Google Colabで実行した方が手っ取り早かったので、そちらについても記載しています。また、面倒だな!という方のために、あらかじめ作成したものもダウンロードできるようにしてあります。

本記事の素材は、これ自体を販売しない限り、商用利用も再配布もOKです。各利用者の責任のもと、公序良俗に反しない範囲でお使いください。


ノイズとは何か? そしてその効果

「ノイズ」と聞くと、無意味な騒音を連想しがちですが、ホワイトノイズやブラウンノイズといった特定のノイズは、実は人間にとって有益な音として利用されることがあります。これらの音は、特定の周波数や音の特性を持ち、集中力を高めたり、リラックスを促すために使用されています。

ホワイトノイズ(White noise)

ホワイトノイズは、全ての周波数帯域で均等にエネルギーを持つ音です。自然界には存在しない音ですが、外部の雑音をかき消す「マスキング効果」に優れており、睡眠環境の改善集中力の向上に役立つとされています。例えば、交通騒音や職場の雑談を気にせずに作業したいときや、夜中に目が覚めないようにするためにホワイトノイズを流すことがあります。

ブラウンノイズ(Brown noise)

ブラウンノイズ(Brownian nois、red noiseとも呼ばれる)は、低周波数の成分が多く、より深い、重厚感のある音が特徴です。耳に優しく、心地よい響きがあるため、リラックスやストレス軽減に向いています。瞑想やヨガの際、または安眠を促すために使用されることが多く、穏やかで落ち着いた環境を提供します。

ピンクノイズ(Pink noise)

ピンクノイズは、周波数が高くなるにつれてエネルギーが減少し、自然界の音(雨や風など)に似た音として知られています。ホワイトノイズほどシャープではなく、心地よい眠りを促進すると言われ、睡眠中に流すことで深い睡眠に導く効果があるとされています。

ChatGPTでノイズを生成してみる

実際にChatGPTを活用してこれらのノイズを生成してみます。忘れられがちですが、ChatGPTはPython実行環境を持っています。ChatGPT自身にスクリプトを書かせて、それを実行できるのです!ただし、現時点でPlusといった有料版に限られます。

ホワイトノイズの生成

例としてホワイトノイズを生成してもらいます。プロンプトはかなり適当でよいです。明示的に、ChatGPTで実行するんだよ、時間はこれくらいだよ、ダウンロードしたいよ、というのを入れてあげると、ほぼ間違いはないでしょう。

ChatGPTのPython実行環境で、ホワイトノイズを作成するスクリプトを実行してください。 時間は300秒でお願いします。最後にダウンロードできる形で連携してください。

プロンプト
ChatGPT-4oです。

→noteにアップロードしようとしましたが、永遠アップロードが終わらないので省略。この記事の下部に軽量化したものを添付します。(100メガは流石に大きかったか。)

Google Colabでノイズを生成してみる

Google ColabもPython実行環境です。従量課金の有料版もありますが、無料版も十分使えます。Googleアカウントにログインして、以下のページにアクセスします。

右上のファイル、ドライブの新しいノートブックを押します。
「+コード」と書かれたボタンを押し、コードを入力できるブロックを生成します。そこに、以下コピペして、▶︎ボタンを押します。

import numpy as np
from scipy.io import wavfile
from scipy import signal

# パラメータ設定
duration = 300  # 音の長さ(秒)
sample_rate = 44100  # サンプリングレート
num_samples = int(duration * sample_rate)
amplitude = 0.5  # 音の大きさ(0.0 〜 1.0)

def generate_white_noise(num_samples):
    return np.random.normal(0, 1, num_samples)

def generate_pink_noise(num_samples):
    # ピンクノイズのスペクトルを生成
    X = np.random.normal(0, 1, num_samples)
    S = np.fft.rfft(X)
    f = np.linspace(1, len(S), len(S))
    S = S * (1 / np.sqrt(f))
    return np.fft.irfft(S, n=num_samples)

def generate_brown_noise(num_samples):
    return np.cumsum(np.random.normal(0, 1, num_samples))

def normalize_and_convert(wave):
    wave = wave - np.mean(wave)  # DCオフセットを除去
    wave = wave / np.max(np.abs(wave))
    return np.int16(amplitude * wave * 32767)

# ノイズ生成
white_noise = generate_white_noise(num_samples)
pink_noise = generate_pink_noise(num_samples)
brown_noise = generate_brown_noise(num_samples)

# 正規化と16ビットPCM形式への変換
white_noise_int = normalize_and_convert(white_noise)
pink_noise_int = normalize_and_convert(pink_noise)
brown_noise_int = normalize_and_convert(brown_noise)

# WAVファイルに保存
wavfile.write("white_noise.wav", sample_rate, white_noise_int)
wavfile.write("pink_noise.wav", sample_rate, pink_noise_int)
wavfile.write("brown_noise.wav", sample_rate, brown_noise_int)

print("全てのノイズファイルが生成されました。")

# オプション:スペクトル密度をプロットする(matplotlib必要)
import matplotlib.pyplot as plt

def plot_psd(noise, noise_type):
    f, Pxx = signal.welch(noise, sample_rate, nperseg=1024)
    plt.figure(figsize=(10, 6))
    plt.semilogx(f, 10 * np.log10(Pxx))
    plt.title(f'{noise_type} Noise Power Spectral Density')
    plt.xlabel('Frequency [Hz]')
    plt.ylabel('PSD [dB/Hz]')
    plt.grid(True)
    plt.savefig(f'{noise_type.lower()}_noise_psd.png')
    plt.close()

plot_psd(white_noise, 'White')
plot_psd(pink_noise, 'Pink')
plot_psd(brown_noise, 'Brown')

print("パワースペクトル密度のプロットが保存されました。")
実行後イメージ

左端にある「ファイル」を押すと、その直下にファイルが生成されます。この「.wav」となっているのが、それぞれのノイズに対応しています。

なんとなく視覚化できるようにプロットしたものも生成されますが、それは直接的に意味のあるものではないので気にせず。コードから消しても大丈夫です。

補足:科学的な根拠とソルフェジオ周波数

ホワイトノイズやピンクノイズ、ブラウンノイズなど、環境音としてのノイズが人間に与える影響については、科学的なエビデンスがある程度揃っています。(【】内の数字は根拠となる論文です。)

  • 不眠症に対する研究では、ホワイトノイズを使用した人は、使用しない人と比べて眠りにつくまでの時間が短縮され、夜中に目覚める回数が減少したことが報告されています【1】。

  • 乳児の睡眠に関する研究では、ホワイトノイズが赤ちゃんの睡眠を助ける効果があると示されています。ホワイトノイズを流した場合、赤ちゃんが早く眠りにつき、長時間眠ることが確認されています【2】。

  • 学習や集中に関する研究によると、ホワイトノイズを背景に作業することで、注意散漫を減らし、集中力を高める効果があることが示されています。特に、ADHD(注意欠如・多動性障害)を持つ人に対して、ホワイトノイズが認知機能をサポートし、タスクの遂行を助ける可能性があることが報告されています【3】。

  • オフィス環境の研究では、ホワイトノイズやピンクノイズが職場の背景音として導入された場合、作業の効率が向上し、ストレスが軽減されることが示されています【4】。

  • ストレス軽減に関する研究では、ピンクノイズやブラウンノイズが不安やストレスを軽減し、リラクゼーションを促す効果が確認されています。低周波数の音が心拍や呼吸を落ち着ける効果があるとされています【5】。

ただし、過剰な依存はかえって危険であるという説も出ており、何事もほどほどが大事なのでしょう。最近Amazonで購入してみた、ホワイトノイズマシンには、タイマーが付けられていました。こういったタイマーを活用して、睡眠導入時にだけ利用するであったり、音量を下げておくことも有用でしょう。

↓アマゾンアソシエイツリンクです。

ソルフェジオ周波数とは

ソルフェジオ周波数は、古代のグレゴリオ聖歌などに使われたとされる特定の音階や振動数に由来しています。これらの周波数は、「精神的な癒し」や「感情の解放」など、特定の効果があると信じられています。特に528Hzは「DNA修復」や「愛の周波数」として人気がありますが、これもスピリチュアルな概念に基づいています。

現時点で、ソルフェジオ周波数が具体的な生理的・心理的効果を持つという科学的な裏付けは、ほとんど存在しません。いくつかの研究や実験では、特定の音や振動がリラクゼーションやストレス緩和に寄与する可能性が示されていますが、それはソルフェジオ周波数特有のものではなく、一般的な音や音楽療法による効果に過ぎないことが多いです。

基本的に人間は全くの無音より、多少何かしらの音に晒された方が精神衛生的に良いわけです。その観点からすれば、特段ソルフェジオ周波数である必要もありません。しかしながら、「病も気から」ということわざにもある通り、信じれば案外意味があるものなのかもしれません。

まとめ

音は私たちの精神状態や作業効率に大きな影響を与えます。今回紹介したように、ホワイトノイズブラウンノイズピンクノイズなどをChatGPTのPython環境を活用して自分で生成し、自由にカスタマイズして利用することができます。

これらの音を試すことで、集中力を高めたり、リラックスした環境を作るのに役立ててみてください。音が持つ力を上手に活用し、より快適な生活を手に入れましょう。

ちなみに、音楽ストリーミングサービスも良いですが、どうでしょう、集中できますか?結構自分が気に入った曲調や歌詞であった際に、集中が切れるのではないでしょうか。そう言った点からも、こうしたノイズは有用かもしれません。

また、睡眠時にはかえって音を遮断した方が良い方もいると思います。自分は正直耳栓をつけて寝るタイプです(ちょっとした物音で起きてしまう)。なので、自分に合ったもの(ノイズなのか、耳栓なのか)を探して、試してみるのをまずオススメします。これが絶対最適解!というのは、なかなか存在しないものです。

↓アマゾンアソシエイツリンクです。愛用している耳栓。つける際にはコツがあり、頭を傾け耳を天井に向け、反対側の手で耳を持ち上げて、予め細くしたこの耳栓を入れると良いです。この耳栓は、ねじるのではなく、潰すのがポイントです。

おまけ

※音量にご注意ください。ブラウンノイズだけ、極端に小さく聞こえます。それぞれ5分です。


この記事が気に入ったらサポートをしてみませんか?