コード例 #1
0
    def test_decode(self):
        decoder = Decoder(48000, 2)

        packet = chr((63 << 2) + 3) + chr(49)
        for j in range(2, 51):
            packet += chr(0)

        try:
            decoder.decode(packet, frame_size=960)
        except OpusError as e:
            self.assertEqual(e.code, constants.INVALID_PACKET)

        packet = chr(63 << 2) + chr(0) + chr(0)

        try:
            decoder.decode(packet, frame_size=60)
        except OpusError as e:
            self.assertEqual(e.code, constants.BUFFER_TOO_SMALL)

        try:
            decoder.decode(packet, frame_size=480)
        except OpusError as e:
            self.assertEqual(e.code, constants.BUFFER_TOO_SMALL)

        try:
            decoder.decode(packet, frame_size=960)
        except OpusError:
            self.fail('Decode failed')
コード例 #2
0
    def test_create(self):
        try:
            Decoder(1000, 3)
        except OpusError as e:
            self.assertEqual(e.code, constants.BAD_ARG)

        Decoder(48000, 2)
コード例 #3
0
    def test_decode_float(self):
        decoder = Decoder(48000, 2)

        packet = chr(63<<2)+chr(0)+chr(0)
        try:
            decoder.decode_float(packet, frame_size=960)
        except OpusError:
            self.fail('Decode failed')
コード例 #4
0
    def test_decode_float(self):
        decoder = Decoder(48000, 2)

        packet = chr(63 << 2) + chr(0) + chr(0)
        try:
            decoder.decode_float(packet, frame_size=960)
        except OpusError:
            self.fail('Decode failed')
コード例 #5
0
    def test_decode(self):
        decoder = Decoder(48000, 2)

        packet = chr((63<<2)+3)+chr(49)
        for j in range(2, 51):
            packet += chr(0)

        try:
            decoder.decode(packet, frame_size=960)
        except OpusError as e:
            self.assertEqual(e.code, constants.INVALID_PACKET)

        packet = chr(63<<2)+chr(0)+chr(0)

        try:
            decoder.decode(packet, frame_size=60)
        except OpusError as e:
            self.assertEqual(e.code, constants.BUFFER_TOO_SMALL)

        try:
            decoder.decode(packet, frame_size=480)
        except OpusError as e:
            self.assertEqual(e.code, constants.BUFFER_TOO_SMALL)

        try:
            decoder.decode(packet, frame_size=960)
        except OpusError:
            self.fail('Decode failed')
コード例 #6
0
    def test_get_pitch(self):
        decoder = Decoder(48000, 2)

        self.assertIn(decoder.pitch, (-1, 0))

        packet = chr(63<<2)+chr(0)+chr(0)
        decoder.decode(packet, frame_size=960)
        self.assertIn(decoder.pitch, (-1, 0))

        packet = chr(1)+chr(0)+chr(0)
        decoder.decode(packet, frame_size=960)
        self.assertIn(decoder.pitch, (-1, 0))
コード例 #7
0
ファイル: server.py プロジェクト: hsuhkdlc/language_learning
    def my_init(self, msg) :

        print(msg)
        rate, is_encoded, op_rate, op_frm_dur = [int(i) for i in msg.split(',')]
        #rate : actual sampling rate
        #op_rate : the rate we told opus encoder
        #op_frm_dur : opus frame duration

        txt = ""
        filename = DATADIR + str(uuid.uuid4()) + '.wav'
        
        wave_write = wave.open(filename, 'wb')
        wave_write.setnchannels(1)
        wave_write.setsampwidth(2) #int16, even when not encoded
        wave_write.setframerate(rate)

        if self.initialized :
            self.wave_write.close()

        self.filename = filename
        print("filename: ", filename)
        db.execute('insert into post(body) values (?)', [filename])
        db.commit()

        self.is_encoded = is_encoded
        self.decoder = OpusDecoder(op_rate, 1)
        self.frame_size = op_frm_dur * op_rate
        self.wave_write = wave_write
        self.initialized = True
コード例 #8
0
    def my_init(self, msg):

        print(msg)
        rate, is_encoded, op_rate, op_frm_dur = [
            int(i) for i in msg.split(',')
        ]
        #rate : actual sampling rate
        #op_rate : the rate we told opus encoder
        #op_frm_dur : opus frame duration

        filename = str(uuid.uuid4()) + '.wav'

        wave_write = wave.open(filename, 'wb')
        wave_write.setnchannels(1)
        wave_write.setsampwidth(2)  #int16, even when not encoded
        wave_write.setframerate(rate)

        if self.initialized:
            self.wave_write.close()

        self.is_encoded = is_encoded
        self.decoder = OpusDecoder(op_rate, 1)
        self.frame_size = op_frm_dur * op_rate
        self.wave_write = wave_write
        self.initialized = True
コード例 #9
0
    def test_gain(self):
        decoder = Decoder(48000, 2)

        self.assertEqual(decoder.gain, 0)

        try:
            decoder.gain = -32769
        except OpusError as e:
            self.assertEqual(e.code, constants.BAD_ARG)

        try:
            decoder.gain = 32768
        except OpusError as e:
            self.assertEqual(e.code, constants.BAD_ARG)

        decoder.gain = -15
        self.assertEqual(decoder.gain, -15)
コード例 #10
0
    def test_gain(self):
        decoder = Decoder(48000, 2)

        self.assertEqual(decoder.gain, 0)

        try:
            decoder.gain = -32769
        except OpusError as e:
            self.assertEqual(e.code, constants.BAD_ARG)

        try:
            decoder.gain = 32768
        except OpusError as e:
            self.assertEqual(e.code, constants.BAD_ARG)

        decoder.gain = -15
        self.assertEqual(decoder.gain, -15)
コード例 #11
0
class OpusDecoderWS(tornado.websocket.WebSocketHandler):
    def open(self):

        print('new connection')
        self.initialized = False

    def my_init(self, msg):

        print(msg)
        rate, is_encoded, op_rate, op_frm_dur = [
            int(i) for i in msg.split(',')
        ]
        #rate : actual sampling rate
        #op_rate : the rate we told opus encoder
        #op_frm_dur : opus frame duration

        filename = str(uuid.uuid4()) + '.wav'

        wave_write = wave.open(filename, 'wb')
        wave_write.setnchannels(1)
        wave_write.setsampwidth(2)  #int16, even when not encoded
        wave_write.setframerate(rate)

        if self.initialized:
            self.wave_write.close()

        self.is_encoded = is_encoded
        self.decoder = OpusDecoder(op_rate, 1)
        self.frame_size = op_frm_dur * op_rate
        self.wave_write = wave_write
        self.initialized = True

    def on_message(self, data):

        if str(data).startswith('m:'):
            self.my_init(str(data[2:]))
        else:
            if self.is_encoded:
                pcm = self.decoder.decode(data, self.frame_size, False)
                self.wave_write.writeframes(pcm)

                # force garbage collector
                # default rate of cleaning is not sufficient
                gc.collect()

            else:
                self.wave_write.writeframes(data)

    def on_close(self):

        if self.initialized:
            self.wave_write.close()

        print('connection closed')
コード例 #12
0
ファイル: server.py プロジェクト: rahulsekar/brautopy
class OpusDecoderWS(tornado.websocket.WebSocketHandler):
    
    def open(self):

        print('new connection')
        self.initialized = False

    def my_init(self, msg) :

        print(msg)
        rate, is_encoded, op_rate, op_frm_dur = [int(i) for i in msg.split(',')]
        #rate : actual sampling rate
        #op_rate : the rate we told opus encoder
        #op_frm_dur : opus frame duration

        filename = str(uuid.uuid4()) + '.wav'

        wave_write = wave.open(filename, 'wb')
        wave_write.setnchannels(1)
        wave_write.setsampwidth(2) #int16, even when not encoded
        wave_write.setframerate(rate)

        if self.initialized :
            self.wave_write.close()

        self.is_encoded = is_encoded
        self.decoder = OpusDecoder(op_rate, 1)
        self.frame_size = op_frm_dur * op_rate
        self.wave_write = wave_write
        self.initialized = True

    def on_message(self, data) :

        if str(data).startswith('m:') :
            self.my_init(str(data[2:]))
        else :
            if self.is_encoded :
                pcm = self.decoder.decode(data, self.frame_size, False)
                self.wave_write.writeframes(pcm)

                # force garbage collector
                # default rate of cleaning is not sufficient
                gc.collect()

            else :
                self.wave_write.writeframes(data)

    def on_close(self):

        if self.initialized :
            self.wave_write.close()

        print('connection closed')
コード例 #13
0
    def test_get_pitch(self):
        decoder = Decoder(48000, 2)

        self.assertIn(decoder.pitch, (-1, 0))

        packet = chr(63 << 2) + chr(0) + chr(0)
        decoder.decode(packet, frame_size=960)
        self.assertIn(decoder.pitch, (-1, 0))

        packet = chr(1) + chr(0) + chr(0)
        decoder.decode(packet, frame_size=960)
        self.assertIn(decoder.pitch, (-1, 0))
コード例 #14
0
ファイル: server.py プロジェクト: rahulsekar/brautopy
    def my_init(self, msg) :

        print(msg)
        rate, is_encoded, op_rate, op_frm_dur = [int(i) for i in msg.split(',')]
        #rate : actual sampling rate
        #op_rate : the rate we told opus encoder
        #op_frm_dur : opus frame duration

        filename = str(uuid.uuid4()) + '.wav'

        wave_write = wave.open(filename, 'wb')
        wave_write.setnchannels(1)
        wave_write.setsampwidth(2) #int16, even when not encoded
        wave_write.setframerate(rate)

        if self.initialized :
            self.wave_write.close()

        self.is_encoded = is_encoded
        self.decoder = OpusDecoder(op_rate, 1)
        self.frame_size = op_frm_dur * op_rate
        self.wave_write = wave_write
        self.initialized = True
コード例 #15
0
 def test_get_bandwidth(self):
     decoder = Decoder(48000, 2)
     self.assertEqual(decoder.bandwidth, 0)
コード例 #16
0
 def test_reset_state(self):
     decoder = Decoder(48000, 2)
     decoder.reset_state()
コード例 #17
0
 def test_reset_state(self):
     decoder = Decoder(48000, 2)
     decoder.reset_state()