こんにちは、ヒガシです。
このページでは、前回作成した救急車のサイレン音データをWAVファイルとして保存する方法をご紹介していきます。
それではさっそくやっていきましょう!
必要なライブラリ
今回は作成した音の配列データをscipyというライブラリを使ってWAVファイルとして保存していきます。
scipyをインストールしていない方は、まずはインストール作業から始めましょう。
以下2つのコードが通ればOKです。
from scipy.io.wavfile import write
scipyで配列データをWAVファイルとして保存する方法
それでは本題である音声データをWAVファイルとして保存する方法をご紹介していきます。
やり方は以下の通りです。
A:保存後のファイル名(例:’sample.wav’)
B:サンプルフレームレート
C:WAV化する配列データ
とはいえこれだけではよくわからないと思いますので、実際に配列を作成するところからコーディングをしてみましょう。
配列をWAV化するサンプルコード
配列作成⇒音声保存という流れを実演してみます。
import pygame
import numpy as np
import scipy
from scipy.io.wavfile import write
#モジュール初期化
pygame.mixer.init(frequency=44100, size=-16, channels=1)
#再生時間を指定
time=0.6
#周波数を指定
Hz1=960
Hz2=770
#配列データを作成
arr_size = int(44100*time*2)
x=np.linspace(0,arr_size,arr_size)
pi_y=np.sin(2*np.pi*Hz1/44100*x)*10000
po_y=np.sin(2*np.pi*Hz2/44100*x)*10000
y=np.concatenate([pi_y,po_y],0)
y=y.astype(np.int16)
sound_arr = y.reshape(int(y.shape[0]/2), 2)
#音を保存
scipy.io.wavfile.write(filename='pipo_sound.wav', rate=44100, data=sound_arr)
最後の1行までが配列データの作成作業、最後の1行がwavファイルへの書き出し処理です。
これでプログラム実行フィルだにpipo_sound.wavというファイルが保存されています。
以下が実際に出てきたファイルです。
※再生するとピーポーという音が流れます。
問題なく実行できていそうですね。
おわりに
というわけで今回はpythonを使って、作成した音の配列データをWAVファイルとして保存する方法をご紹介しました。
音声データ処理の際などにぜひご活用ください。
このように、私のブログでは様々なスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村
それではまた!
Follow @HigashiSalary
コメント