-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathencode.py
89 lines (76 loc) · 2.59 KB
/
encode.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# -*- coding: utf-8 -*-
# IMPORTANTE: Este programa sólo genera un archivo WAV codificado (sampleaudio.wav). Ese archivo debe ser emitido usando rpitx para ser detectado.
# IMPORTANT: This program only generates a WAV file (sampleaudio.wav). You should transmit it using rpitx.
from pydub import AudioSegment
from pydub.generators import Square
from pydub.playback import play
s = input("Texto a enviar / Text to send:")
a = s.encode("hex")
s = a
print ("- Mensaje codificado:", s)
dura = 33
inicio = Square(3000).to_audio_segment(duration=90)
# CARACTERES ESPECIALES
tonoinicio = Square(300).to_audio_segment(duration=dura)
tonofinal = Square(200).to_audio_segment(duration=dura)
tonoseparador = Square(2300).to_audio_segment(duration=dura)
# A
tono1 = Square(400).to_audio_segment(duration=dura)
# B
tono2 = Square(500).to_audio_segment(duration=dura)
# C
tono3 = Square(600).to_audio_segment(duration=dura)
# D
tono4 = Square(700).to_audio_segment(duration=dura)
# E
tono5 = Square(800).to_audio_segment(duration=dura)
# F
tono6 = Square(900).to_audio_segment(duration=dura)
# 1
tono7 = Square(970).to_audio_segment(duration=dura)
# 2
tono8 = Square(1080).to_audio_segment(duration=dura)
# 3
tono9 = Square(1180).to_audio_segment(duration=dura)
# 4
tono10 = Square(1300).to_audio_segment(duration=dura)
# 5
tono11 = Square(1400).to_audio_segment(duration=dura)
# 6
tono12 = Square(1500).to_audio_segment(duration=dura)
# 7
tono13 = Square(1600).to_audio_segment(duration=dura)
# 8
tono14 = Square(1700).to_audio_segment(duration=dura)
# 9
tono15 = Square(1800).to_audio_segment(duration=dura)
# 0
tono16 = Square(1900).to_audio_segment(duration=dura)
# Silencio
silencio = Square(1).to_audio_segment(duration=100)
# Inicializamos con silencio para evitar que el detector se vuelva loco
resultado = silencio
for c in s :
if "a" in c : tono = tono1
if "b" in c : tono = tono2
if "c" in c : tono = tono3
if "d" in c : tono = tono4
if "e" in c : tono = tono5
if "f" in c : tono = tono6
if "1" in c : tono = tono7
if "2" in c : tono = tono8
if "3" in c : tono = tono9
if "4" in c : tono = tono10
if "5" in c : tono = tono11
if "6" in c : tono = tono12
if "7" in c : tono = tono13
if "8" in c : tono = tono14
if "9" in c : tono = tono15
if "0" in c : tono = tono16
# dentro del for:
# inicio - tono actual - silencio
inicio = inicio.append(inicio, crossfade=5).append(tono, crossfade=5).append(silencio, crossfade=5)
# fuera del for:
# tonoinicio - (resultado) - tonofinal
# Generamos el archivo que será emitido
inicio.export("sampleaudio.wav", format="wav")