将语音数据作为字符串记录并写入文件中以进行加密

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)

将所有帧作为字节流连接到该文件中。

【讨论】:

顺便说一句:如果您使用withopen 它,则无需close 文件。 with 负责处理。

以上是关于将语音数据作为字符串记录并写入文件中以进行加密的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs Parse Json 文件将输入转换为 JSON 数组写入文件

Swift,将数据加载到临时文件流中以进行 transferFile

数据库中数据写入多维数组,如何实现?

将具有多个嵌套级别的任何 XML 读取到结构化表中以写入 Excel 的通用方法

Mcrypt 库将结果写入文件

如何在将无限的文本流写入文件之前对其进行预处理?