将音频拖入工具Audacity,可以看到波形我是选择频谱图,
注意要把字母对应的摩斯码打空格分开不然在线识别不了
http://www.mathsking.net/morse.htmCODE = {'A':'.-','B':'-...','C': '-.-.','D': '-..', 'E': '.','F': '..-.',
'G': '--.', 'H': '....','I': '..','J': '.---','K': '-.-','L': '.-..',
'M': '--', 'N': '-.','O': '---','P': '.--.', 'Q': '--.-', 'R': '.-.',
'S': '...', 'T': '-', 'U': '..-','V': '...-', 'W': '.--', 'X': '-..-',
'Y': '-.--', 'Z': '--..',
'0': '-----', '1': '.----', '2': '..---',
'3': '...--', '4': '....-', '5': '.....',
'6': '-....', '7': '--...', '8': '---..',
'9': '----.'
}
DECODE={'.-':'A', '-...':'B', '-.-.':'C', '-..':'D', '.':'E', '..-.':'F',
'--.':'G', '....':'H', '..':'I','.---':'J' , '-.-':'K', '.-..':'L',
'--':'M', '-.':'N','---':'O' ,'.--.':'P' , '--.-':'Q', '.-.': 'R',
'...':'S', '-':'T','..-': 'U' , '...-':'V', '.--': 'W', '-..-':'X',
'-.--':'Y', '--..':'Z',
'-----':'0','.----': '1' ,'..---':'2' ,
'...--':'3' , '....-':'4', '.....': '5',
'-....':'6', '--...': '7' , '---..': '8' ,
'----.':'9','..--..':'?','-....-':'-',
'-.--.-':'(','.-.-.-':'.'
}
def Encode(msg):
out=""
for char in msg:
if char == ' ':
print
else:
out+=CODE[char.upper()]+' '
return out
def Decode(msg):
out=''
sumstr=''
for char in msg:
if char == ' ':
sumstr+=DECODE[out]
out=''
continue
out+=char
sumstr+=DECODE[out]
return sumstr
if __name__ == "__main__":
num=input('请输入数字1或2,1加密,2解密: ')
if num=='1':
msg = input('输入明文: ')
print('加密后摩斯码: ')
print(Encode(msg))
elif num=='2':
msg=input('请输入摩斯密文 :')
print('解密后明文: ')
print(Decode(msg))
else:
print('Error')
得到结果: