实战whisper第二天:直播语音转字幕(全部代码和详细部署步骤)
import os
from datetime import datetime
from pydub import AudioSegment
from pydub.utils import make_chunks
from aip import AipSpeech
# 配置百度AI开发平台的应用信息
APP_ID = '你的AppID'
API_KEY = '你的ApiKey'
SECRET_KEY = '你的SecretKey'
# 初始化AipSpeech对象
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
# 音频文件路径
audio_file_path = 'live.mp3'
# 读取音频文件
audio = AudioSegment.from_file(audio_file_path)
# 设置每个音频片段的长度,单位毫秒
chunk_length_ms = 15000
# 将音频文件分割成指定长度的片段
chunks = make_chunks(audio, chunk_length_ms)
# 创建一个目录用于保存转录的文本
os.makedirs('transcripts', exist_ok=True)
# 循环处理每个音频片段
for i, chunk in enumerate(chunks):
# 将音频片段转换为BAIS格式
with open(f'chunk_{i}.wav', 'wb') as f:
f.write(chunk.get_array_of_samples())
# 读取音频文件
with open(f'chunk_{i}.wav', 'rb') as f:
audio_data = f.read()
# 调用百度AI开发平台的语音识别接口
result = client.asr(audio_data, 'wav', 16000, {
'dev_pid': 1536,
})
if 'result' in result:
# 获取识别结果
text = result['result'][0]
# 将识别的文本写入文件
with open(f'transcripts/transcript_{i}.txt', 'w') as f:
f.write(text)
# 删除临时文件
os.remove(f'chunk_{i}.wav')
# 打印完成信息
print("所有音频转写完成,请查看transcripts文件夹。")
这段代码使用了pydub
库来处理音频文件,并且调用了百度AI开发平台的语音识别接口来实现音频转写为文本。首先,你需要配置你的百度AI开发平台的应用信息,并确保你有一个音频文件live.mp3
。代码将该音频文件分割成指定长度的音频片段,并逐一发送到百度AI开发平台进行识别,最后将识别结果保存到文本文件中。
评论已关闭