犀牛派A1上使用Faster Whisper完成音频转文字

项目介绍:Faster Whisper 是一个基于 CTranslate2 的 OpenAI Whisper 模型的高效实现。它是一个快速推理引擎,用于 Transformer 模型,相比 OpenAI 的 Whisper 模型,速度提升了 4 倍。该项目支持 Windows、Linux 和 macOS 平台,并且提供了多种优化选项,如 FP16 和 INT8 计算类型,以适应不同的硬件环境。

硬件:犀牛派A1
平台:QCS6490


一、环境准备

打开终端,在命令行界面中输入如下命令来安装Faster Whisper

sudo apt update && sudo apt install -y python3-pip ffmpeg
#因为这里使用CPU进行推理,安装 CPU 优化的 CTranslate2 和 Faster-Whisper
pip install faster-whisper
pip install ctranslate2 --no-deps # 确保不安装 GPU 相关依赖 
pip install faster-whisper

二、准备推理脚本

编写或拉取一个脚本,可命名为 test.py

from faster_whisper import WhisperModel
import sys
import time
def main():
    # 获取音频文件名
    if len(sys.argv) > 1:
        filename = sys.argv[1]
    else:
        filename 
faster-whisper 是一种基于 Whisper 的高效实现,主要用于加速语音文字的功能。然而,需要注意的是,faster-whisper 并不直接提供文字语音(Text-to-Speech, TTS)功能[^1]。它专注于优化 Whisper 模型的推理性能,从而更快地完成语音到文字换。 如果想实现文字语音功能,则需要引入专门用于 TTS 的工具或库。以下是几种常见的解决方案: --- ### 使用 Tacotron 2 或 FastSpeech 2 实现 Text-to-Speech Tacotron 2 和 FastSpeech 2 是两种广泛使用的 TTS 技术方案。可以借助这些技术来生成高质量的声音文件。例如,使用 `TTS` 库是一个简单的方法: #### 安装依赖 ```bash pip install torch==1.9.0 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html pip install TTS ``` #### 文字语音代码示例 ```python from TTS.api import TTS # 初始化模型 tts = TTS(model_name="tts_models/en/ljspeech/fast_pitch", progress_bar=False, gpu=True) # 将文本合成语音并保存为 MP3 文件 text = "This is a test of text to speech using FasterWhisper as part of the pipeline." output_file = "./output.mp3" tts.tts_to_file(text=text, file_path=output_file) ``` 此代码片段展示了如何通过 `TTS` 库将输入的文字合成为语音文件[^6]。 --- ### 结合 faster-whisper 和 TTS 构建完整的流水线 为了构建一个从语音到文字再回到语音的完整流水线,可以按照以下方法操作: 1. **语音文字**:利用 faster-whisper 录原始音频。 2. **编辑或修改文字内容**:根据需求调整录结果。 3. **文字语音**:使用 TTS 工具重新生成新的语音文件。 #### 示例代码 ```python from faster_whisper import WhisperModel from TTS.api import TTS # 加载 faster-whisper 模型 model_size = "large-v2" model = WhisperModel(model_size, device="cuda", compute_type="float16") # 音频文字 segments, info = model.transcribe("input_audio.wav", beam_size=5) transcribed_text = " ".join([segment.text for segment in segments]) print(f"Transcription Result: {transcribed_text}") # 加载 TTS 模型 tts = TTS(model_name="tts_models/en/ljspeech/fast_pitch", progress_bar=False, gpu=True) # 合成新语音 output_file = "synthesized_output.mp3" tts.tts_to_file(text=transcribed_text, file_path=output_file) ``` 在此代码中,先使用 faster-whisper音频进行录,随后将其作为输入传递给 TTS 模型以生成新的语音文件[^7]。 --- ### 注意事项 - 更改语言时,请确保所选的 TTS 模型支持目标语言。例如,对于日语,可以选择相应的预训练模型。 - 如果处理大量数据,建议优化 GPU 性能以及批量处理逻辑以提高效率。 - 在实际应用中,可能还需要考虑实时性、延迟等因素。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值