小数据通过声音库。
项目描述
小数据通过声音库。
# 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-0.4.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f1451b636695675cdd9b92d8cf2ce3d3246b31a6e79cf63164c7d255db795124 |
|
MD5 | 2ac82c8aa61d4d2d81be45cce25538ce |
|
BLAKE2b-256 | a418a8b2204590a4f7f12a38398f50a9b7618b18f345428c478edf53acc30b7d |