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