树莓派接入麦克风,需要解压
树莓派镜像2021-10-18-raspbian-buster-full.7z
链接:https://pan.baidu.com/s/1egSPEmC6hLELDfryfEnwPA
提取码:he4y
镜像烧录工具 Win32DiskImager.7z
链接:https://pan.baidu.com/s/1uxmwMlPNjGXBP3lGGA5rzw
提取码:n3t0
阿里云百炼:https://bailian.console.aliyun.com/
目前只找到免费的,好用点的语音转文字大模型。每个月免费额度36000token
我使用的主板是树莓派zero2wh,配合此镜像的声卡驱动只支持频率44100,查了很多博客也没找到相关的资料。只能靠代码修改频率。修改频率的目的是因为,语音转文字16000的频次上传效果最好,44100的频次传上去识别比较差。
树莓派录音失真问题,失败,盲猜跟暂存区大小,频率相关。
import pyaudio
import wave
import librosa
# 填入自己的阿里云百炼key
dashscope.api_key = 'sk-xxxx'
CHUNK = 512
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
print("开始录音,请说话...")
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print("录音结束.")
stream.stop_stream()
stream.close()
p.terminate()
# 将录音数据转换为numpy数组
audio_data = b''.join(frames)
audio_np = np.frombuffer(audio_data, dtype=np.int16)
# 使用librosa进行采样率转换
y_16k = librosa.resample(audio_np, orig_sr=RATE, target_sr=16000)
# 进行后续处理,例如语音识别
# 注意:此处省略了语音识别的代码,你可以使用之前的`Recognition`类实例来处理转换后的音频数据
# recognition = Recognition(model='paraformer-realtime-v1', format='wav', sample_rate=16000)
# result = recognition.call(audio_data=y_16k)
# 如果需要,可以将转换后的音频保存为文件进行验证
# librosa.output.write_wav('output_16k.wav', y_16k, 16000)