在本文中,我们将使用 Whisper 创建语音转文本应用程序。Whisper需要Python后端,因此我们将使用Flask为应用程序创建服务器。
React Native 作为构建移动客户端的框架。我希望您喜欢创建此应用程序的过程,因为我确实这样做了。让我们直接深入研究它。
语音识别使程序能够将人类语音处理成书面格式。语法、句法、结构和音频对于理解和处理人类语音至关重要。
语音识别算法是计算机科学中最复杂的领域之一。人工智能、机器学习、无监督预训练技术的发展,以及 Wav2Vec 2.0 等框架,这些框架在自我监督学习和从原始音频中学习方面是有效的,已经提高了它们的能力。
语音识别器由以下组件组成:
语音输入
一种解码器,它依赖于声学模型、发音词典和语言模型进行输出
输出一词
这些组件和技术进步使未在Windows10中查看RAM内存详细信息的5种方法标记语音的大型数据集的消费成为可能。预先训练的音频编码器能够学习高质量的语音表示;它们唯一的缺点是不受监督的性质。
高性能解码器将语音表示映射怎么给Windows 11完整系统备份?简单图文操作教程到可用输出。解码器解决了音频编码器的监控问题。但是,解码器限制了Wav2Vec等框架对语音识别的有效性。解码器使用起来可能非常复杂,需要熟练的从业者,特别是因为 Wav2Vec 2.0 等技术难以使用。
关键是要结合尽可能多的高质量语音识别数据集。以这种方式训练的模型比在单个源上训练的模型更有效。
Whisper或WSPR代表用于语音识别的Web级监督预训练。耳语模型接受训练,以便能够预测成绩单的文本。
Whisper 依靠序列到序列模型在话语及其转录形式之间进行映射,这使得语音识别管道更有效。Whisper带有一个音频语言检测器,这是一个在VoxLingua107上训练的微调模型。
Whisper数据集由音频与来自互联网的成绩单配对组成。数据集的质量通过使用自动筛选方法而提高。
要使用Whisper,我们需要依靠Pytho如何让Android看起来和感觉像iOS17?不换手机也能体验 iOSn作为我们的后端。Whisper 还需要命令行工具 ffmpeg,它使我们的应用程序能够录制、转换和流式传输音频和视频。
以下是在不同机器上安装 ffgmeg 的必要命令:
# on Ubuntu or Debian sudo apt update && sudo apt install ffmpeg # on Arch Linux sudo pacman -S ffmpeg # on MacOS using Homebrew (https://brew.sh/) brew install ffmpeg # on Windows using Chocolatey (https://chocolatey.org/) choco install ffmpeg # on Windows using Scoop (https://scoop.sh/) scoop install ffmpeg
在本节中,我们将为应用创建后端服务。如何在 Windows 11 上标准化音量 Flask是一个用Python编写的Web框架。我选择将Flask用于此应用程序,因为它易于设置。
Flask开发团队建议使用最新版本的Python,尽管Flask仍然支持Python ≥ 3.7。
安装先决条件完成后,我们可以创建项目文件夹来保存客户端和后端应用程序。
mkdir translateWithWhisper && cd translateWithWhisper && mkdir backend && cd backend
Flask 利用虚拟环境来管理项目依赖关系;Python有一个开箱即用的venv模块来创建它们。
在终端窗口中使用以下命令创建文件夹。此文件夹包含我们的依赖项。venv
python3 -m venv venv
使用文件指定必要的依赖项。该文件位于后端目录的根目录中。requirements.txt``requirements.txt
touch requirements.txt code requirements.txt
将以下代码复制并粘贴到文件中:requirements.txt
numpy tqdm transformers>=4.19.0 ffmpeg-python==0.2.0 pyaudio SpeechRecognition pydub git+https://github.com/openai/whisper.git --extra-index-url https://download.pytorch.org/whl/cu113 torch flask flask_cors
在根项目目录中,创建一个 Bash shell 脚如何使用 UUP Dump 下载 Windows 11 ISO 文件?详细图文教程本文件。Bash 脚本处理 Flask 应用程序中依赖项的安装。
在根项目目录中,打开终端窗口。使用以下命令创建外壳脚本:
touch install_dependencies.sh code install_dependencies.sh
将以下代码块复制并粘贴到文件中:install_dependencies.sh
# install and run backend cd backend && python3 -m venv venv source venv/Scripts/activate pip install wheel pip install -r requirements.txt
现在,在根目录中打开一个终端窗口并运行以下命令:
sh .\install_dependencies.sh
现在,我们将在应用程序中创建一个终结点,该终结点将从客户端接收音频输入。应用程序将转录输入并将转录的文本返回给客户端。transcribe
此终结点接受请求并处理输入。当响应是 200 HTTP 响应时,客户端会收到转录的文本。POST
创建一个文件来保存用于处理输入的逻辑。打开一个新的终端窗口,在后端目录中创建一个文件:app.py``app.py
touch backend/app.py code backend/app.py
将下面的代码块复制并粘贴到文件中:app.py
import os import tempfile import flask from flask import request from flask_cors import CORS import whisper app = flask.Flask(__name__) CORS(app) // endpoint for handling the transcribing of audio inputs @app.route('/transcribe', methods=['POST']) def transcribe(): if request.method == 'POST language = request.form['language'] model = request.form['model_size'] # there are no english models for large if model != 'large' and language == 'english': model = model + '.en' audio_model = whisper.load_model(model) temp_dir = tempfile.mkdtemp() save_path = os.path.join(temp_dir, 'temp.wav') wav_file = request.files['audio_data'] wav_file.save(save_path) if language == 'english': result = audio_model.transcribe(save_path, language='english') else: result = audio_model.transcribe(save_path) return result['text'] else: return "This endpoint only processes POST wav blob"
在包含变量的已激活终端窗口中,运行以下命令以启动应用程序:venv
$ cd backend $ flask run –port 8000
期望应用程序启动时没有任何错误。如果是这种情况,终端窗口中应显示以下结果:
That closes out the creation of our endpoint in our Flask application.transcribe
To make network requests to the created HTTP endpoint in iOS, we’ll need to route to an HTTPS server. ngrok solves the issue of creating a re-route.
下载 ngrok,然后安装软件包并趣知笔记打开它。终端窗口启动;输入以下命令以使用 ngrok 托管服务器:
ngrok http 8000
ngrok 将生成一个托管 URL,该 URL 将在客户端应用程序中用于请求。
对于本教程的这一部分,您需要安装一些东西:
世博会 CLI:用于与世博会工具接口的命令行工具
适用于 Android 和 iOS 的 Expo Go 应用程序:用于打开通过 Expo CLI 提供的应用程序
在新的终端窗口中,初始化 React Native 项目:
npx create-expo-app client cd client
现在,启动开发服务器:
npx expo start
要在iOS设