在本文中,我们将使用 Whisper 创建语音转文本应用程序。Whisper需要Python后端,因此我们将使用Flask为应用程序创建服务器。
React Native 作为构建移动客户端的框架。我希望您喜欢创建此应用程序的过程,因为我确实这样做了。让我们直接深入研究它。
什么是语音识别?
语音识别使程序能够将人类语音处理成书面格式。语法、句法、结构和音频对于理解和处理人类语音至关重要。
语音识别算法是计算机科学中如何在 macOS Big Sur 上显示/隐藏电池百分比最复杂的领域之一。人工智能、机器学习、无监督预训练技术的发展,以及 Wav2Vec 2.0 等框架,这些框架在自我监督学习和从原始音频中学习方面是有效的,已经提高了它们的能力。
语音识别器由以下组件组成:
-
语音输入
-
一种解码器,它依赖于声学模型、发音词典和语言模型进行输出
-
输出一词
这些组件和技术进步使未标记语音的大型数据集的消费成为可能。预先训练的音频编码器能够学习高质量的语音表示;它们唯一的缺点是不受监督的性质。
什么是解码器?
高性能解码器将语音表示映射到可用输出。解码器解决了音频编码器的监控问题。但是,解码器限制了Wav2Vec等框架对语音识别的有效性。解码器使用起来可能非常复杂,需要熟练的从业者,特别是因为 Wav2Vec 2.0 等技术难以使用。
关键是要结合尽可能多的高质量语音识别数据集。以这种方式训练的模型比在单个源上训练的模型更有效。
什么是耳语?
Whisper或WSPR代表用于语音识别的Web级监督预训练。耳语模型接受训练,以便能够预测成绩单的文本。
Whisper 依靠序列到序列模型在话语如何在 Windows 11 中设置帐户锁定阈值及其转录形式之间进行映射,这使得语音识别管道更有效。Whisper带有一个音频语言检测器,这是一个在VoxLingua107上训练的微调模型。
Whisper数据集由音频与来自互联网的成绩单配对组成。数据集的质量通过使用自动筛选方法而提高。
设置耳语
要使用Whisper,我们需要依靠Python作为我们的后端。Whisper 还需要命令行工具 ffmpeg,它使我们的应用程序能够录制、转如何在发件人不知情的情况下阅读 WhatsApp 消息换和流式传输音频和视频。
以下是在不同机器上安装 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
使用 Flask 创建后端应用程序
在本节中,我们将为应用创建后端服务。 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 脚本以安装依赖项
在根项目目录中,创建一个 Bash shell 脚本文件。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
现在,我们将在应用程序中创建如何在Windows中随机停止USB连接/中断连接噪音一个终结点,该终结点将从客户端接收音频输入。应用程序将转录输入并将转录的文本返回给客户端。transcribe
此终结点接受请求并处理输入。当响应是 200 HTTP 响应时,客户端会收到转录的文本。POST
创建一个文件来保存用于处理输入的逻辑。打开一个新的终端窗口,在后端目录中创建一个文件:app.py``app.py
touch backend/app.py code backend/app.py
将下面的代码块复制并新的 Bing 聊天可以做什么?(必应AI聊天功能)粘贴到文件中: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
期望应用程序启动时没有任何错误。如果是这种情况,终端窗口中应显示以下结果:
这结束了在 Flask 应用程序中创建端点的过程。transcribe
托管服务器
若要向 iOS 中创建的 HTTP 终结趣知笔记 - 分享有价值的教程!点发出网络请求,我们需要路由到 HTTPS 服务器。ngrok 解决了创建重新路由的问题。
下载 ngrok,然后安装软件包并打开它。终端窗口启动;输入以下命令以使用 ngrok 托管服务器:
ngrok http 8000
ngrok 将生成一个托管 URL,该 URL 将在客户端应用程序中用于请求。
使用 React Native 创建语音识别移动应用程序
对于本教程的这一部分,您需要安装一些东西:
-
世博会 CLI:用于与世博会工具接口的命令行工具
-
适用于 Android 和 iOS 的 Expo Go 应用程序:用于打开通过 Expo CLI 提供的应用程序
在新的终端窗口中,初始化 React Native 项目:
npx create-expo-app client cd client
现在,启动开发服务器:
npx expo start
要在iOS设备上打开应用程序,请打开相机并扫描终端上的QR码。在 Android 设备上,按 Expo Go 应用程序的“主页”选项卡上的扫描二维码。
我们的世博围棋应用程序