我们不需要更多的布局部分,因为我们的应用程序将只定义一页。

主页

主页面的实现在文件:src/pages/IndexPage.vue

这是我们将放置文本字段和保存按钮的主页。

对于此文件,我们只需从模板(\\\"建立發音評估應用程式(第 标签)中删除 Quasar 徽标,并修改脚本部分以使用 vueJS 3 组合 api,以便源看起来像以下文件:

我们现在将使用 Quasar 组件 QInput 添加文本字段

为此,我们将 q-input 组件添加到页面模板中:

您可以看到文本字段显示在屏幕中央,这是由于 Quasar flex 和 flex-center 类所致。这些类由 Quasar 定义:Flexbox。我们将通过将文本字段放置在屏幕顶部来解决此问题,我们还将利用它来设置组件的样式。

Quasar 甚至为我们提供了一个 Flex Playground 来进行实验并找到要放置的类。

正如你所看到的,我们在脚本部分定义了一个句子引用来存储用户输入的值。它通过 v-model 指令关联到 q-input 组件

我们将通过添加允许录制单词或句子发音的按钮来完成第一部分。为此,我们将简单地使用 Quasar 的 q 按钮组件并将其放置在文本字段之后。

请注意,我们添加了 q-mt-lg 类,通过在每个组件上方留出一些空间来稍微放松界面。关于间距可以参考Quasar文档。

应用程序将如下所示:

\\\"Create

接下来我们要做什么

因此,我们成功获得了应用程序的框架。

在后面的部分我们将了解如何获取音频,然后如何通过 SpeechSuper API 获取分数

结论

不要犹豫评论帖子!第 2 部分即将推出!

","image":"http://www.luping.net/uploads/20240828/172485325166cf2c030035a.png","datePublished":"2024-08-28T21:54:10+08:00","dateModified":"2024-08-28T21:54:10+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 建立發音評估應用程式(第 1 部分)

建立發音評估應用程式(第 1 部分)

發佈於2024-08-28
瀏覽:926

本教程的目的是创建一个应用程序来控制用户的发音。

要遵循它,您必须了解 javascript,更理想的是 Vue.js 3。

这个想法

我最近决定回到德语。我在使用这种语言时遇到的主要困难是正确发音。通常我会听一个例子,然后把自己重复的录音录下来,然后再听一遍。这是一个复杂的过程,我必须承认我的耳朵不太好。

基于这一观察,我想知道是否有一个应用程序或 API 可以告诉我我的德语单词或句子的发音是否正确!经过一些调查和重大发现后,我想编写自己的应用程序来解决我的问题。

我就是这样做的!

可用的API

经过一番研究,我找到了解决我问题的应用程序。但总的来说,发音验证通常只是付费应用程序(或与订阅一起使用的应用程序)的一项附加功能。然后我决定寻找 API。

以下是执行此操作的 API 列表:

  • Google Cloud 语音转文本 API
  • Microsoft Azure 语音服务
  • iSpeech 发音
  • 言语学
  • 演讲
  • 现在的艾莎
  • 语音超级

这些 API 是付费的,但通常允许您获得 2 周的测试和实验访问权限。

由于我想检查我的德语发音,所以我选择使用SpeechSuper API进行测试,因为它支持包括德语在内的多种语言。在本教程的后面部分,我们将尝试 Speechace API 来演示根据您的需求从一个 API 切换到另一个 API 是多么容易。

应用程序人体工程学的定义

目标是实现一个简单的应用程序,允许您输入单词、录制您的声音、将录音发送到 API 并显示您的分数。

应用程序如下所示:

Create a pronunciation assessment App (Part 1)

因此,我们将创建一个应用程序,该应用程序将显示一个允许输入单词或句子的文本字段。一个按钮将允许您收听它。
然后我们有一个按钮来录制我们的声音,这个按钮在录音模式下会改变风格。只需点击它即可停止并发送到API以获取发音分数。
获得分数后,它会显示为一个图块,其颜色代表我们的分数,从红色到绿色到橙色。

应用程序的初始化

理想的情况是能够将应用程序部署为 Web 应用程序,同时也能够部署为原生 Android 应用程序。因此我们将使用 Quasar。

类星体框架

Quasar 是一个开源 Vue.js 框架,用于使用单个代码库开发应用程序。它们可以部署在网络上(SPA、PWA、SSR)、作为移动应用程序(Android、iOS)或桌面应用程序(MacOs、Windows、Linux)。

准备

如果还不是这种情况,您需要安装 NodeJS。更好的是使用 volta,因为它允许您根据您的项目使用不同版本的 NodeJ。

我们将首先使用 Quasar 脚手架工具初始化我们的项目。

npm i -g @quasar/cli
npm init quasar

cli会问我们几个问题,选择以下选项:

选项列表
  • 使用 Quasar CLI 的应用程序
  • 项目文件夹:learn2speak
  • 类星体 v2
  • Javascript
  • Quasar 应用程序与 Vite
  • 软件包名称:learn2speak
  • 项目产品名称:学说话
  • 项目描述:评估你的发音
  • 作者:你自己
  • CSS 预处理器:具有 SCSS 语法的 Sass
  • 所需功能:
    • ESLint
    • axios
  • ESLint 预设:标准
  • 安装项目依赖项:是,使用 npm

命令执行后,您可以进入该目录并在本地为应用程序提供服务:

cd learn2speak
npm run dev

您的默认浏览器应打开以下地址的页面:http://localhost:9000

Create a pronunciation assessment App (Part 1)

修改建议的骨架以获得目标人体工程学

示例应用程序可用,我们将删除不需要的元素。为此,我们将在 VSCode 中打开源代码(您当然可以使用其他编辑器)

code .

布局修改

Quasar 为我们提供了布局的概念,以及后者中包含的页面的概念。页面和布局是通过路由器选择的。对于本教程,我们不需要了解这些概念,但您可以在这里学习它们:Quasar 布局

我们不需要抽屉,至少现在不需要,所以我们将从 src/layouts/MainLayout.vue 文件中删除它。为此,删除 ... 标记之间包含的

然后我们可以删除整个脚本部分并用以下代码替换它:

我们不需要更多的布局部分,因为我们的应用程序将只定义一页。

主页

主页面的实现在文件:src/pages/IndexPage.vue

这是我们将放置文本字段和保存按钮的主页。

对于此文件,我们只需从模板(建立發音評估應用程式(第 1 部分) 标签)中删除 Quasar 徽标,并修改脚本部分以使用 vueJS 3 组合 api,以便源看起来像以下文件:

我们现在将使用 Quasar 组件 QInput 添加文本字段

为此,我们将 q-input 组件添加到页面模板中:

您可以看到文本字段显示在屏幕中央,这是由于 Quasar flex 和 flex-center 类所致。这些类由 Quasar 定义:Flexbox。我们将通过将文本字段放置在屏幕顶部来解决此问题,我们还将利用它来设置组件的样式。

Quasar 甚至为我们提供了一个 Flex Playground 来进行实验并找到要放置的类。

正如你所看到的,我们在脚本部分定义了一个句子引用来存储用户输入的值。它通过 v-model 指令关联到 q-input 组件

我们将通过添加允许录制单词或句子发音的按钮来完成第一部分。为此,我们将简单地使用 Quasar 的 q 按钮组件并将其放置在文本字段之后。

请注意,我们添加了 q-mt-lg 类,通过在每个组件上方留出一些空间来稍微放松界面。关于间距可以参考Quasar文档。

应用程序将如下所示:

Create a pronunciation assessment App (Part 1)

接下来我们要做什么

因此,我们成功获得了应用程序的框架。

在后面的部分我们将了解如何获取音频,然后如何通过 SpeechSuper API 获取分数

  • 第 2 部分:获取音频
  • 第三部分:通过SpeechSuper API获取分数
  • 第 4 部分:打包应用程序

结论

不要犹豫评论帖子!第 2 部分即将推出!

版本聲明 本文轉載於:https://dev.to/jeromemare/create-a-pronunciation-assessment-app-part-1-dob?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何在 Serp 中排名 4
    如何在 Serp 中排名 4
    搜索引擎排名页面 (SERP) 是网站争夺可见性和流量的地方。到 2024 年,在 Google 和其他搜索引擎上的高排名仍然对在线成功至关重要。然而,SEO(搜索引擎优化)多年来已经发生了变化,并将继续发展。如果您想知道如何在 2024 年提高 SERP 排名,这里有一个简单的指南可以帮助您了解最...
    程式設計 發佈於2024-11-05
  • 如何使用多處理在 Python 進程之間共享鎖
    如何使用多處理在 Python 進程之間共享鎖
    在Python 中的進程之間共享鎖定當嘗試使用pool.map() 來定位具有多個參數(包括Lock() 物件)的函數時,它是對於解決子進程之間共享鎖的問題至關重要。由於 pickling 限制,傳統的 multiprocessing.Lock() 無法直接傳遞給 Pool 方法。 選項 1:使用 ...
    程式設計 發佈於2024-11-05
  • Type Script 中 readonly 和 const 的區別
    Type Script 中 readonly 和 const 的區別
    這兩個功能的相似之處在於它們都是不可分配的。 能具體解釋一下嗎? 在這篇文章中,我將分享它們之間的差異。 const 防止重新分配給變數。 在這種情況下,hisName 是一個不能重新分配的變數。 const hisName = 'Michael Scofield' hisN...
    程式設計 發佈於2024-11-05
  • 如何使用 Range 函式在 Python 中複製 C/C++ 循環語法?
    如何使用 Range 函式在 Python 中複製 C/C++ 循環語法?
    Python 中的 for 迴圈:擴展 C/C 迴圈語法在程式設計中,for 迴圈是迭代序列的基本結構。雖然 C/C 採用特定的循環初始化語法,但 Python 提供了更簡潔的方法。不過,Python 中有一種模仿 C/C 循環風格的方法。 實作循環運算:for (int k = 1; k <...
    程式設計 發佈於2024-11-05
  • TechEazy Consulting 推出全面的 Java、Spring Boot 和 AWS 培訓計畫並提供免費實習機會
    TechEazy Consulting 推出全面的 Java、Spring Boot 和 AWS 培訓計畫並提供免費實習機會
    TechEazy Consulting 很高興地宣布推出我們的綜合培訓計劃,專為希望轉向後端開發使用Java、Spring Boot的初學者、新手和專業人士而設計,以及AWS。 此4個月的帶薪培訓計劃之後是2個月的無薪實習,您可以在實際專案中應用您的新技能—無需任何額外的培訓費用。對於那些希望填補...
    程式設計 發佈於2024-11-05
  • Polyfills-填充物還是縫隙? (第 1 部分)
    Polyfills-填充物還是縫隙? (第 1 部分)
    幾天前,我們在組織的 Teams 聊天中收到一條優先訊息,內容如下:發現安全漏洞 - 偵測到 Polyfill JavaScript - HIGH。 舉個例子,我在一家大型銀行公司工作,你必須知道,銀行和安全漏洞就像主要的敵人。因此,我們開始深入研究這個問題,並在幾個小時內解決了這個問題,我將在下...
    程式設計 發佈於2024-11-05
  • 移位運算子與位元簡寫賦值
    移位運算子與位元簡寫賦值
    1。移位運算子 :向右移動。 >>>:無符號右移(零填充)。 2.移位運算子的一般語法 value > num-bits:將值位向右移動,保留符號位。 value >>> num-bits:透過在左側插入零將值位向右移動。 3.左移 每次左移都會導致該值的所有位元向左移動一位。 右側插入0...
    程式設計 發佈於2024-11-05
  • 如何使用 VBA 從 Excel 建立與 MySQL 資料庫的連線?
    如何使用 VBA 從 Excel 建立與 MySQL 資料庫的連線?
    VBA如何在Excel中連接到MySQL資料庫? 使用VBA連接到MySQL資料庫嘗試連接使用 VBA 在 Excel 中存取 MySQL 資料庫有時可能具有挑戰性。在您的情況下,您在嘗試建立連線時遇到錯誤。 若要使用 VBA 成功連線至 MySQL 資料庫,請依照下列步驟操作:Sub Connec...
    程式設計 發佈於2024-11-05
  • 測試自動化:使用 Java 和 TestNG 進行 Selenium 指南
    測試自動化:使用 Java 和 TestNG 進行 Selenium 指南
    测试自动化已成为软件开发过程中不可或缺的一部分,使团队能够提高效率、减少手动错误并以更快的速度交付高质量的产品。 Selenium 是一个用于自动化 Web 浏览器的强大工具,与 Java 的多功能性相结合,为构建可靠且可扩展的自动化测试套件提供了一个强大的框架。使用 Selenium Java 进...
    程式設計 發佈於2024-11-05
  • 我對 DuckDuckGo 登陸頁面的看法
    我對 DuckDuckGo 登陸頁面的看法
    「為什麼不穀歌一下呢?」是我在對話中得到的常見答案。谷歌的無所不在甚至催生了新的動詞「Google」。但是我寫的程式碼越多,我就越質疑我每天使用的數位工具。也許我對谷歌使用我的個人資訊的方式不再感到滿意。或者我們很多人依賴谷歌進行互聯網搜索和其他應用程序,說實話,我厭倦了在搜索某個主題或產品後彈出的...
    程式設計 發佈於2024-11-05
  • 為什麼 Turbo C++ 的「cin」只讀取第一個字?
    為什麼 Turbo C++ 的「cin」只讀取第一個字?
    Turbo C 的「cin」限制:僅讀取第一個單字在Turbo C 中,「cin」輸入運算符有一個處理字元數組時的限制。具體來說,它只會讀取直到遇到空白字元(例如空格或換行符)。嘗試讀取多字輸入時,這可能會導致意外行為。 請考慮以下 Turbo C 代碼:#include <iostream....
    程式設計 發佈於2024-11-05
  • 使用 Buildpack 建立 Spring Boot 應用程式的 Docker 映像
    使用 Buildpack 建立 Spring Boot 應用程式的 Docker 映像
    介绍 您已经创建了一个 Spring Boot 应用程序。它在您的本地计算机上运行良好,现在您需要将该应用程序部署到其他地方。在某些平台上,您可以直接提交jar文件,它将被部署。在某些地方,您可以启动虚拟机,下载源代码,构建并运行它。但是,大多数时候您需要使用容器来部署应用程序。大...
    程式設計 發佈於2024-11-05
  • 如何保護 PHP 程式碼免於未經授權的存取?
    如何保護 PHP 程式碼免於未經授權的存取?
    保護PHP 代碼免於未經授權的訪問保護PHP 軟體背後的智慧財產權對於防止其濫用或盜竊至關重要。為了解決這個問題,可以使用多種方法來混淆和防止未經授權的存取您的程式碼。 一個有效的方法是利用 PHP 加速器。這些工具透過快取頻繁執行的部分來增強程式碼的效能。第二個好處是,它們使反編譯和逆向工程程式碼...
    程式設計 發佈於2024-11-05
  • React:了解 React 的事件系統
    React:了解 React 的事件系統
    Overview of React's Event System What is a Synthetic Event? Synthetic events are an event-handling mechanism designed by React to ach...
    程式設計 發佈於2024-11-05
  • 為什麼在使用 Multipart/Form-Data POST 請求時會收到 301 Moved Permanently 錯誤?
    為什麼在使用 Multipart/Form-Data POST 請求時會收到 301 Moved Permanently 錯誤?
    Multipart/Form-Data POSTsMultipart/Form-Data POSTs嘗試使用multipart/form-data POST 資料時,可能會出現類似所提供的錯誤訊息遭遇。理解問題需要檢視問題的構成。遇到的錯誤是 301 Moved Permanently 回應,表示資...
    程式設計 發佈於2024-11-05

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3