在 React Native 中使用 Whisper 进行语音识别

在本文中,我们将使用 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 应用程序的“主页”选项卡上的扫描二维码。

我们的世博围棋应用程序

处理录音<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pxr007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值