Debian 12 Linux 转录服务器 (Python, VOSK, Script)
对于需要处理大量音频文件以将信息转换为文本的任务,有一个用 Python 编写并包含世界上大多数语言的 VOSK 模型。 这个动作称为转录。 由于搜索引擎通过描述和标签而不是内容来索引音频和视频文件,因此需要发布另一个文本版本。在本指南中,我们以 root 身份安装,如果您有普通的,请使用 sudo 命令 。
|
最常见的问题:
-
我们希望所有数据都在我们身边。 你们能对我们的设备进行所有这些调整吗?
是的,您可以通过以下命令在您的设备上订购此配置的安装和配置 关联.
1. 安装必要的软件包
apt update
apt install python3 python3-pip ffmpeg unzip rename
apt install python3.11-venv
python3 -m venv .venv
2. 安装 Vosk 实用程序
source .venv/bin/activate
pip3 install vosk
3. 下载模型
cd /opt
wget https://alphacephei.com/vosk/models/vosk-model-ru-0.42.zip
unzip vosk-model-ru-0.42.zip
注1: 在我们的例子中,我们选择了完整模型,如果服务器配置的 RAM 小于 8 GB,那么该模型将无法工作并会给出错误:
在这种情况下,请下载模型的最低版本,因为它对服务器资源的要求较低:
cd /opt
wget https://alphacephei.com/vosk/models/vosk-model-small-ru-0.22.zip
unzip vosk-model-small-ru-0.22.zip
4. 使用以下命令语法检查是否有效
vosk-transcriber -i audio_file -o text_file -m path_to_model
vosk-transcriber -i /root/test.mp3 -o /root/test.txt -m /opt/vosk-model-ru-0.42
For the minimum model, respectively:
vosk-transcriber -i /root/test.mp3 -o /root/test.txt -m /opt/vosk-model-small-ru-0.22
如果你有多个文件,我们在网上找到并使用了以下脚本,它可以让你处理整个文件夹的音频文件,并自动将它们全部翻译成文本,你只需等待处理完成即可:
touch transcribe.sh
chmod +x transcribe.sh
nano transcribe.sh
#!/bin/bash
errmsg="USAGE: sh transcribe.sh SRCPATH DSTPATH VOSKMODELPATH"
if [ $1 ]; then
srcpath=$1
echo "SOURCE PATH: $srcpath"
else
echo "No source path entered" >&2
echo $errmsg
exit 2
fi
if [ $2 ]; then
dstpath=$2
echo "DESTINATION PATH: $dstpath"
else
echo "No destination path entered" >&2
echo $errmsg
exit 2
fi
if [ $3 ]; then
modelpath=$3
echo "VOSK MODEL PATH: $modelpath"
else
echo "No VOSK language model path entered" >&2
echo $errmsg
exit 2
fi
startdate=$(date)
find $srcpath -name "* *" -type f | rename 's/ /_/g'
## remove spaces from filenames in target directory
famount=$(find $srcpath -type f | wc -l) ## counting the number of files
echo "Found $famount files"
i=0;
for f in $srcpath/*; do
i=$(( $i + 1 ))
echo "Transcribing ${f##*/} ($i/$famount)"
vosk-transcriber -m $modelpath -i $srcpath/${f##*/} -o $dstpath/${f##*/}.txt >/dev/null 2>&1 ;
## remove >/dev/null 2>&1 to display recognition status
## rm $srcpath/${f##*/} ## uncomment to remove the original file
done
fready=$(find $dstpath -type f | wc -l)
echo "DONE. Transcribed $fready of $famount files"
enddate=$(date)
echo STARTED AT: ${startdate}
echo ENDED AT: ${enddate}
使用脚本的语法:
sh transcribe.sh path_to_sources_files path_to_result path_to_model
sh transcribe.sh /root/audio/ /root/text/ /opt/vosk-model-ru-0.42/
笔记2: 如果您再次通过 ssh 登录服务器,则激活 Python 虚拟环境后即可使用 vosk-transcriber 命令,因此转录启动顺序如下:
source .venv/bin/activate
vosk-transcriber -i /root/test.mp3 -o /root/test.txt -m /opt/vosk-model-ru-0.42/
To process an entire folder:
sh transcribe.sh /root/audio/ /root/text/ /opt/vosk-model-ru-0.42/
更多语言模型可供使用 关联, 需要类推第3段中所述进行下载和解压。
用于将音频文件翻译成文本的服务器已准备好使用。 翻译的质量取决于发音的清晰度和录音本身的质量,例如,在处理采访中的音频片段时,它明显高于处理音乐歌曲时。
暂时没有评论