将语音数据作为字符串记录并写入文件中以进行加密
Posted
技术标签:
【中文标题】将语音数据作为字符串记录并写入文件中以进行加密【英文标题】:Recording and writing voice data as String in a file for Encryption 【发布时间】:2014-01-16 14:17:08 【问题描述】:我已经编写了用于数据加密的 AES,我的代码能够加密文本文件,同时一次选择 32 个字节......我现在也想加密录制的语音,
这是我到目前为止所做的,
import pyaudio
import wave
import sys
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "R_Voice.wav"
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
print("The Voice is being Recorded........")
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print (frames)
f = open("abc.txt",'w')
f.write(str(frames))
f.close()
frames[]
包含录制语音的十六进制数据,我想将此数据作为字符串写入文件,所以我这样做了(如上所示)
f.write(str(frames))
但是当我在执行程序后看到abc.txt
文件中的数据时,它是这种形式,并且完整的数据在一行中,这通常会挂我的树莓派。
['7\xe47\xe4O\xe4O\xe4N\xe4N\xe4A\xe4A\xe4F\xe4F\xe4C\xe4C\xe4H\xe4H\xe4Y\x
我应该如何将其转换为字符串以便我可以对其进行加密?
【问题讨论】:
看起来像 python,所以我将它标记为这样。如果我错了,请纠正我。 您将输入数据存储为文本表示形式。您需要按原样保存: f = open("abc.txt",'wb') ; f.write(帧) 【参考方案1】:使用
with open("filename", 'w') as outFile:
for frame in frames:
outFile.write(frame)
将所有帧作为字节流连接到该文件中。
【讨论】:
顺便说一句:如果您使用with
到open
它,则无需close
文件。 with
负责处理。以上是关于将语音数据作为字符串记录并写入文件中以进行加密的主要内容,如果未能解决你的问题,请参考以下文章
Nodejs Parse Json 文件将输入转换为 JSON 数组写入文件
Swift,将数据加载到临时文件流中以进行 transferFile