跳转到主要内容

小数据通过声音库。

项目描述

小数据通过声音库。

# generate audio waveform for string "hello python"
waveform = ggwave.encode("hello python")

# decode audio waveform
text = ggwave.decode(instance, waveform)

功能

  • 可听和超声波传输可用

  • 8-16字节/秒的带宽(取决于传输协议)

  • 鲁棒的FSK调制

  • 基于Reed-Solomon的错误纠正

安装

pip install ggwave

API

encode()

encode(payload, [protocolId], [volume], [instance])

有效载荷编码成音频波形。

help(ggwave.encode)的输出

built-in function encode in module ggwave

encode(...)
    Encode payload into an audio waveform.
    @param {string} payload, the data to be encoded
    @return Generated audio waveform bytes representing 16-bit signed integer samples.

decode()

decode(instance, waveform)

分析并解码波形以尝试获取原始有效载荷。需要一个预分配的ggwave 实例

help(ggwave.decode)的输出

built-in function decode in module ggwave

decode(...)
    Analyze and decode audio waveform to obtain original payload
    @param {bytes} waveform, the audio waveform to decode
    @return The decoded payload if successful.

用法

  • 使用声音编码和传输数据

import ggwave
import pyaudio

p = pyaudio.PyAudio()

# generate audio waveform for string "hello python"
waveform = ggwave.encode("hello python", protocolId = 1, volume = 20)

print("Transmitting text 'hello python' ...")
stream = p.open(format=pyaudio.paFloat32, channels=1, rate=48000, output=True, frames_per_buffer=4096)
stream.write(waveform, len(waveform)//4)
stream.stop_stream()
stream.close()

p.terminate()
  • 捕获和解码音频数据

import ggwave
import pyaudio

p = pyaudio.PyAudio()

stream = p.open(format=pyaudio.paFloat32, channels=1, rate=48000, input=True, frames_per_buffer=1024)

print('Listening ... Press Ctrl+C to stop')
instance = ggwave.init()

try:
    while True:
        data = stream.read(1024, exception_on_overflow=False)
        res = ggwave.decode(instance, data)
        if (not res is None):
            try:
                print('Received text: ' + res.decode("utf-8"))
            except:
                pass
except KeyboardInterrupt:
    pass

ggwave.free(instance)

stream.stop_stream()
stream.close()

p.terminate()

更多

有关ggwave的更多信息,请访问http://github.com/ggerganov/ggwave

开发

请访问ggwave Python包在GitHub上

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分布

ggwave-0.4.2.tar.gz (76.9 kB 查看哈希值)

上传时间: 源代码