要实现这个功能,需要使用Python中的音频处理库pydub和Google的音频识别库SpeechRecognition。

具体步骤如下:

  1. 使用pydub库读取音频文件,并将其转换为AudioSegment对象。

  2. 使用SpeechRecognition库的Recognizer类创建一个Recognizer对象。

  3. 使用Recognizer对象的recognize_google()方法识别音频文件中的语音,并将识别结果保存在字符串类型的transcript变量中。

  4. 将transcript变量中的文本内容按行分割,得到一个字符串列表。

  5. 遍历字符串列表中的每个文本行,使用pydub库的find()方法查找每个文本行在原始音频中的起始时间,并将其保存在time.txt文件中。

下面是实现代码的示例:

import speech_recognition as sr
from pydub import AudioSegment

input_file = "audio.mp3"
output_file = "time.txt"

# 读取音频文件
audio = AudioSegment.from_file(input_file, format="mp3")

# 创建Recognizer对象
recognizer = sr.Recognizer()

# 使用recognize_google()方法识别音频文件中的语音
with sr.AudioFile(input_file) as source:
    audio_data = recognizer.record(source)
    transcript = recognizer.recognize_google(audio_data, language="zh-CN")

# 将transcript变量中的文本内容按行分割,得到一个字符串列表
lines = transcript.split("\n")

# 遍历字符串列表中的每个文本行,查找每个文本行在原始音频中的起始时间,并将其保存在time.txt文件中
with open(output_file, "w") as f:
    for line in lines:
        start = audio.find(line)
        f.write(str(start) + "\n")

需要注意的是,这种方法只适用于音频文件中的语音内容与文本稿内容完全一致的情况。如果两者存在差异,需要根据实际情况进行调整。

用户一边朗读文字稿 texttxt 文件一边录音得到 audiomp3 文件文字稿一行就是一句话如何通过 python 第三方库不用在线语音识别服务获得文字稿每行文字在录音中的起始时间起始时间逐行 放在 timetxt中

原文地址: http://www.cveoy.top/t/topic/GCq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录