Python(aifc)を使用したAIFFおよびAIFCファイルの読み取りと書き込み
aifcモジュールのさまざまな機能により、AIFF(Audio Interchange File Format)およびAIFF-Cファイルの読み取りと書き込みがサポートされます。 AIFF形式は、デジタルオーディオサンプルをファイルに保存するためのものです。新しいバージョンのAIFF-Cには、オーディオデータを圧縮する機能があります
オーディオファイルには、オーディオデータを説明するいくつかのパラメータがあります。
-
サンプリングレートまたはフレームレート:サウンドがサンプリングされる1秒あたりの回数。
-
チャンネル数:オーディオがモノラル、ステレオ、Quadroのいずれであるかを示します。
-
フレーム:チャンネルごとに1つのサンプルで構成されます。
-
サンプルサイズ:各サンプルのバイト単位のサイズ。
したがって、フレームはチャネル*サンプルサイズバイトで構成されます。 1秒のオーディオデータは、チャネル*サンプルサイズ*フレームレートバイトです。
aifcモジュールでは次の関数が定義されています:
aifc.open()
この関数は、AIFFまたはAIFF-Cファイルを開き、モードに応じてオーディオデータの読み取り/書き込み用のオブジェクトインスタンスを返します。ファイルを読み取り用に開く必要がある場合は、「r」または「rb」である必要があります。書き込みのためにファイルを開く必要がある場合は、「w」または「wb」にする必要があります。
aiff() | AIFFファイルを作成します。 |
aifc() | AIFF-Cファイルを作成します。 |
setnchannels() | オーディオファイルのチャンネル数を指定します。 |
setsampwidth() | オーディオサンプルのサイズをバイト単位で指定します。 |
setframerate() | サンプリング周波数を1秒あたりのフレーム数で指定します。 |
setnframes() | オーディオファイルに書き込むフレーム数を指定します。 |
setcomptype() | 圧縮タイプを指定します。 AIFFファイルは圧縮できません。サポートされている圧縮タイプ-b'NONE'、b'ULAW'、b'ALAW'、b'G722'。 |
setparams() | 上記のすべてのパラメータを一度に設定します。引数は、さまざまなパラメーターで構成されるタプルです。 |
writeframes() | 出力ファイルにデータを書き込みます。 T |
writeframesraw() | writeframes()と同様ですが、オーディオファイルのヘッダーが更新されない点が異なります。 |
import aifc, struct sampleRate = 44100.0 # hertz duration = 1.0 # seconds frequency = 440.0 # hertz obj = aifc.open('sound.aiff','w') obj.setnchannels(1) # mono obj.setsampwidth(2) obj.setframerate(sampleRate) for i in range(99999): value = random.randint(-32767, 32767) data = struct.pack('<h', value) obj.writeframesraw( data ) obj.close()
getnchannels() | オーディオチャンネルの数を返します(モノラルの場合は1、ステレオの場合は2)。 |
getsampwidth() | 個々のサンプルのサイズをバイト単位で返します。 |
getframerate() | サンプリングレート(1秒あたりのオーディオフレーム数)を返します。 |
getnframes() | ファイル内のオーディオフレームの数を返します。 |
getcomptype() | オーディオファイルで使用される圧縮のタイプを説明する長さ4のバイト配列を返します。 |
getparams() | namedtuple()を返します(nchannels、sampwidth、framerate、nframes、comptype、compname |
readframes() | オーディオファイルから次のnframesフレームを読み取って返します。 |
setpos(pos) | 指定されたフレーム番号を探します。 |
これらの関数は、読み取り可能および書き込み可能なaiffオブジェクトで使用できます。
rewind() | 読み取りポインタを巻き戻します。次のreadframes()は最初から始まります。 |
tell() | 現在のフレーム番号を返します。 |
close() | AIFFファイルを閉じます。このメソッドを呼び出すと、オブジェクトは使用できなくなります。 |
import aifc obj = aifc.open('sound.aiff','r') print( "Number of channels",obj.getnchannels()) print ( "Sample width",obj.getsampwidth()) print ( "Frame rate.",obj.getframerate()) print ("Number of frames",obj.getnframes()) print ( "parameters:",obj.getparams()) obj.close()
Number of channels 1 Sample width 2 Frame rate. 44100 Number of frames 99999 parameters: _aifc_params(nchannels=1, sampwidth=2, framerate=44100, nframes=99999, comptype=b'NONE', compname=b'not compressed')
-
Pythonのxlsxwriterモジュールを使用してExcelファイルを作成して書き込みます
Pythonはライブラリを幅広く利用できるため、非常に広く使用されているデータ処理ツールであるMicrosoftExcelとやり取りできます。この記事では、xlsxwriterという名前のモジュールを使用してExcelファイルを作成および書き込む方法を説明します。既存のExcelファイルに書き込むことはできません。 各セルへの書き込み セルの名前を書くことで、Excelシートの各セルに書き込むことができます。次の例では、ワークブックを作成し、それにワークシートを追加します。最後に、write()メソッドを使用してワークシートのセルに書き込みます。 例 import xlsxwriter #
-
Pythonopenpyxlモジュールを使用してExcelファイルの読み取りと書き込み
Pythonは、Excelファイルを操作するためのopenpyxlモジュールを提供します。 このモジュールでは、Excelファイルの作成方法、書き込み方法、読み取り方法などを実装できます。 openpyxlモジュールをインストールするには、コマンドプロンプトでこのコマンドを記述できます pip install openpyxl シートにタイトル名を付けたい場合 サンプルコード import openpyxl my_wb = openpyxl.Workbook() my_sheet = my_wb.active my_sheet_title = my_sheet.title print