本文整理汇总了Python中audiotools.AudioFile类的典型用法代码示例。如果您正苦于以下问题:Python AudioFile类的具体用法?Python AudioFile怎么用?Python AudioFile使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了AudioFile类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(self, filename):
AudioFile.__init__(self, filename)
try:
f = file(filename, 'rb')
except IOError, msg:
raise InvalidAU(str(msg))
示例2: __init__
def __init__(self, filename):
AudioFile.__init__(self, filename)
from audiotools.bitstream import BitstreamReader
from audiotools.text import (ERR_AU_INVALID_HEADER,
ERR_AU_UNSUPPORTED_FORMAT)
try:
f = open(filename, 'rb')
(magic_number,
self.__data_offset__,
self.__data_size__,
encoding_format,
self.__sample_rate__,
self.__channels__) = BitstreamReader(f, 0).parse("4b 5* 32u")
except IOError as msg:
raise InvalidAU(str(msg))
if (magic_number != '.snd'):
raise InvalidAU(ERR_AU_INVALID_HEADER)
try:
self.__bits_per_sample__ = {2: 8, 3: 16, 4: 24}[encoding_format]
except KeyError:
raise InvalidAU(ERR_AU_UNSUPPORTED_FORMAT)
示例3: __init__
def __init__(self, filename):
"""filename is a plain string"""
AudioFile.__init__(self, filename)
self.__channels__ = 0
self.__sample_rate__ = 0
self.__bits_per_sample__ = 0
self.__data_size__ = 0
self.__channel_mask__ = ChannelMask(0)
from .bitstream import BitstreamReader
fmt_read = data_read = False
try:
for chunk in self.chunks():
if (chunk.id == "fmt "):
try:
(self.__channels__, self.__sample_rate__,
self.__bits_per_sample__,
self.__channel_mask__) = parse_fmt(
BitstreamReader(chunk.data(), 1))
fmt_read = True
if (fmt_read and data_read):
break
except IOError:
continue
elif (chunk.id == "data"):
self.__data_size__ = chunk.size()
data_read = True
if (fmt_read and data_read):
break
except IOError:
raise InvalidWave("I/O error reading wave")
示例4: __init__
def __init__(self, filename):
from audiotools.id3 import skip_id3v2_comment
AudioFile.__init__(self, filename)
try:
with open(filename, "rb") as f:
skip_id3v2_comment(f)
from audiotools.bitstream import BitstreamReader
from audiotools.text import (ERR_TTA_INVALID_SIGNATURE,
ERR_TTA_INVALID_FORMAT)
reader = BitstreamReader(f, True)
(signature,
format_,
self.__channels__,
self.__bits_per_sample__,
self.__sample_rate__,
self.__total_pcm_frames__) = reader.parse(
"4b 16u 16u 16u 32u 32u 32p")
if (signature != b"TTA1"):
raise InvalidTTA(ERR_TTA_INVALID_SIGNATURE)
elif (format_ != 1):
raise InvalidTTA(ERR_TTA_INVALID_FORMAT)
self.__total_tta_frames__ = div_ceil(
self.__total_pcm_frames__ * 245,
self.__sample_rate__ * 256)
self.__frame_lengths__ = list(reader.parse(
"%d* 32u" % (self.__total_tta_frames__) + "32p"))
except IOError as msg:
raise InvalidTTA(str(msg))
示例5: __init__
def __init__(self, filename):
"""filename is a plain string"""
from audiotools.bitstream import BitstreamReader
AudioFile.__init__(self, filename)
# first, fetch the mdia atom
# which is the parent of both the mp4a and mdhd atoms
try:
with BitstreamReader(open(filename, "rb"), False) as reader:
mdia = get_m4a_atom(reader,
b"moov", b"trak", b"mdia")[1]
mdia_start = mdia.getpos()
except IOError:
from audiotools.text import ERR_M4A_IOERROR
raise InvalidM4A(ERR_M4A_IOERROR)
except KeyError:
from audiotools.text import ERR_M4A_MISSING_MDIA
raise InvalidM4A(ERR_M4A_MISSING_MDIA)
try:
stsd = get_m4a_atom(mdia, b"minf", b"stbl", b"stsd")[1]
except KeyError:
from audiotools.text import ERR_M4A_MISSING_STSD
raise InvalidM4A(ERR_M4A_MISSING_STSD)
# then, fetch the mp4a atom for bps, channels and sample rate
try:
(stsd_version, descriptions) = stsd.parse("8u 24p 32u")
(mp4a,
self.__channels__,
self.__bits_per_sample__) = stsd.parse(
"32p 4b 48p 16p 16p 16p 4P 16u 16u 16p 16p 32p")
except IOError:
from audiotools.text import ERR_M4A_INVALID_MP4A
raise InvalidM4A(ERR_M4A_INVALID_MP4A)
# finally, fetch the mdhd atom for total track length
mdia.setpos(mdia_start)
try:
mdhd = get_m4a_atom(mdia, b"mdhd")[1]
except KeyError:
from audiotools.text import ERR_M4A_MISSING_MDHD
raise InvalidM4A(ERR_M4A_MISSING_MDHD)
try:
(version, ) = mdhd.parse("8u 24p")
if version == 0:
(self.__sample_rate__,
self.__length__,) = mdhd.parse("32p 32p 32u 32u 2P 16p")
elif version == 1:
(self.__sample_rate__,
self.__length__,) = mdhd.parse("64p 64p 32u 64U 2P 16p")
else:
from audiotools.text import ERR_M4A_UNSUPPORTED_MDHD
raise InvalidM4A(ERR_M4A_UNSUPPORTED_MDHD)
except IOError:
from audiotools.text import ERR_M4A_INVALID_MDHD
raise InvalidM4A(ERR_M4A_INVALID_MDHD)
示例6: __init__
def __init__(self, filename):
"""filename is a plain string."""
AudioFile.__init__(self, filename)
try:
self.__read_metadata__()
except IOError, msg:
raise InvalidVorbis(str(msg))
示例7: __init__
def __init__(self, filename):
"""filename is a plain string."""
AudioFile.__init__(self, filename)
try:
f = open(filename, 'rb')
except IOError, msg:
raise InvalidShorten(str(msg))
示例8: __init__
def __init__(self, filename):
"""filename is a plain string."""
AudioFile.__init__(self, filename)
(self.__samplespersec__,
self.__channels__,
self.__bitspersample__,
self.__totalsamples__) = ApeAudio.__ape_info__(filename)
示例9: __init__
def __init__(self, filename):
"""filename is a plain string."""
AudioFile.__init__(self, filename)
try:
mp3file = file(filename, "rb")
except IOError, msg:
raise InvalidMP3(str(msg))
示例10: __init__
def __init__(self, filename):
"""filename is a plain string"""
from audiotools.bitstream import BitstreamReader
AudioFile.__init__(self, filename)
try:
f = open(filename, 'rb')
except IOError, msg:
raise InvalidShorten(str(msg))
示例11: __init__
def __init__(self, filename):
"""filename is a plain string"""
AudioFile.__init__(self, filename)
self.__sample_rate__ = 0
self.__channels__ = 0
try:
self.__read_identification__()
except IOError, msg:
raise InvalidVorbis(str(msg))
示例12: __init__
def __init__(self, filename):
"""filename is a plain string."""
AudioFile.__init__(self, filename)
from .bitstream import BitstreamReader
try:
mp3file = open(filename, "rb")
except IOError, msg:
raise InvalidMP3(str(msg))
示例13: __init__
def __init__(self, filename):
"""filename is a plain string"""
from .bitstream import BitstreamReader
from . import ChannelMask
import cStringIO
AudioFile.__init__(self, filename)
try:
f = open(filename, 'rb')
except IOError, msg:
raise InvalidShorten(str(msg))
示例14: verify
def verify(self, progress=None):
"""verifies the current file for correctness
returns True if the file is okay
raises an InvalidFile with an error message if there is
some problem with the file"""
# Checking for a truncated Ogg stream typically involves
# verifying that the "end of stream" flag is set on the last
# Ogg page in the stream in the event that one or more whole
# pages is lost. But since the OpusFile decoder doesn't perform
# this check and doesn't provide any access to its internal
# Ogg decoder (unlike Vorbis), we'll perform that check externally.
#
# And since it's a fast check, we won't bother to update progress.
from audiotools.ogg import PageReader
import os.path
try:
reader = PageReader(open(self.filename, "rb"))
except IOError as err:
raise InvalidOpus(str(err))
try:
page = reader.read()
while (not page.stream_end):
page = reader.read()
reader.close()
except (IOError, ValueError) as err:
raise InvalidOpus(str(err))
return AudioFile.verify(self, progress)
示例15: __init__
def __init__(self, filename):
from audiotools.bitstream import BitstreamReader
AudioFile.__init__(self, filename)
try:
with BitstreamReader(
open(self.filename, "rb"), True) as ogg_reader:
(magic_number,
version,
header_type,
granule_position,
self.__serial_number__,
page_sequence_number,
checksum,
segment_count) = ogg_reader.parse("4b 8u 8u 64S 32u 32u 32u 8u")
if magic_number != b'OggS':
from audiotools.text import ERR_OGG_INVALID_MAGIC_NUMBER
raise InvalidVorbis(ERR_OGG_INVALID_MAGIC_NUMBER)
if version != 0:
from audiotools.text import ERR_OGG_INVALID_VERSION
raise InvalidVorbis(ERR_OGG_INVALID_VERSION)
segment_lengths = [ogg_reader.read(8) for i in
range(segment_count)]
(speex_string,
speex_version,
speex_version_id,
header_size,
self.__sampling_rate__,
mode,
mode_bitstream_version,
self.__channels__,
bitrate,
frame_size,
vbr,
frame_per_packet,
extra_headers,
reserved1,
reserved2) = ogg_reader.parse("8b 20b 13*32u")
if speex_string != b"Speex ":
raise InvalidSpeex(ERR_SPEEX_INVALID_VERSION)
except IOError as err:
raise InvalidSpeex(str(err))