Files
ggwave/examples/ggwave-to-file/ggwave-to-file.py

38 lines
1.1 KiB
Python

from typing import Dict, Union
import requests
import wave
def ggwave(message: str,
file: str,
protocolId: int = 1,
sampleRate: float = 48000,
volume: int = 50,
payloadLength: int = -1,
useDSS: int = 0) -> None:
url = 'https://ggwave-to-file.ggerganov.com/'
params: Dict[str, Union[str, int, float]] = {
'm': message, # message to encode
'p': protocolId, # transmission protocol to use
's': sampleRate, # output sample rate
'v': volume, # output volume
'l': payloadLength, # if positive - use fixed-length encoding
'd': useDSS, # if positive - use DSS
}
response = requests.get(url, params=params)
if response == '' or b'Usage: ggwave-to-file' in response.content:
raise SyntaxError('Request failed')
with wave.open(file, 'wb') as f:
f.setnchannels(1)
f.setframerate(sampleRate)
f.setsampwidth(2)
f.writeframes(response.content)
if __name__ == "__main__":
ggwave("Hello world!", "hello_world.wav")