Python
 Computer >> コンピューター >  >> プログラミング >> Python

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()と同様ですが、オーディオファイルのヘッダーが更新されない点が異なります。
次のプログラムでAIFFファイルが作成されます

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()
aiffまたはaiff-c読み取りオブジェクトは次の関数を使用します

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ファイルを閉じます。このメソッドを呼び出すと、オブジェクトは使用できなくなります。
次のプログラムが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')

  1. Pythonのxlsxwriterモジュールを使用してExcelファイルを作成して書き込みます

    Pythonはライブラリを幅広く利用できるため、非常に広く使用されているデータ処理ツールであるMicrosoftExcelとやり取りできます。この記事では、xlsxwriterという名前のモジュールを使用してExcelファイルを作成および書き込む方法を説明します。既存のExcelファイルに書き込むことはできません。 各セルへの書き込み セルの名前を書くことで、Excelシートの各セルに書き込むことができます。次の例では、ワークブックを作成し、それにワークシートを追加します。最後に、write()メソッドを使用してワークシートのセルに書き込みます。 例 import xlsxwriter #

  2. 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