当前位置: 首页 > article >正文

JavaScript 实现文本转语音功能

全篇大概2000 字(含代码),建议阅读时间10分钟。

引言

     我将向大家展示如何使用 JavaScript 和 Web Speech API 快速实现一个“文本转语音”的 Web 应用。通过这个教程,你将了解如何让浏览器将输入的文本朗读出来。

预览效果 

一、需求

我们将构建一个简单的网页应用,用户只需要在文本框中输入想要朗读的文字,然后点击按钮即可播放语音。

1.文本框

2.按钮

二、实现步骤

2.1 项目准备 

创建前端工程,项目名称自拟。

2.2 HTML结构

首先,我们需要定义一个基本的 HTML 页面。这个页面将包含:

一个文本输入区域(textarea)、一个按钮(button),用于触发语音播放。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>文本转换为语音</title>
    <link rel="stylesheet" href="styles.css"> <!-- 引入样式表 -->
</head>
<body>
    <!-- 主容器 -->
    <div class="container">
        <h1>文本转语音</h1>
        <!-- 文本输入框 -->
        <textarea id="textToRead" placeholder="输入文本"></textarea><br>
        <!-- 播放按钮 -->
        <button onclick="speakText()">播放语音</button>
    </div>
    <!-- 引入 JavaScript 文件 -->
    <script src="script.js"></script>
</body>
</html>

2.3 JavaScript逻辑

接下来,我们需要为文本转语音功能编写 JavaScript 代码。使用 Web Speech API 中的 SpeechSynthesis 接口来实现语音播放。

function speakText() {
    // 获取文本输入框的内容
    const text = document.getElementById('textToRead').value;
    if (text.trim() === '') return; // 如果文本为空,则不执行
    const utterance = new SpeechSynthesisUtterance(text); // 创建语音合成实例
    utterance.lang = 'zh-CN'; // 设置语言为中文
    utterance.volume = 1;      // 设置音量(0 到 1)
    utterance.rate = 1;        // 设置语速(0.1 到 10)
    utterance.pitch = 1;       // 设置音调(0 到 2)
    window.speechSynthesis.speak(utterance); // 播放语音
}

2.4 CSS样式

body {
    font-family: Arial, sans-serif;
    background-color: #f3f4f6;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    margin: 0;
}

.container {
    background-color: #ffffff;
    padding: 30px;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    text-align: center;
}

h1 {
    color: #333;
    margin-bottom: 20px;
}

textarea {
    width: 100%;
    height: 100px;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    resize: none;
    font-size: 16px;
}

button {
    margin-top: 15px;
    padding: 10px 20px;
    background-color: #007bff;
    color: #fff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
    transition: background-color 0.3s ease;
}

button:hover {
    background-color: #0056b3;
}

三、测试

现在,我们已经完成了所有代码的编写。将 index.htmlscript.jsstyles.css 文件保存在同一目录下,打开 index.html 即可在浏览器中测试这个文本转语音功能。

1. 在文本框中输入想要朗读的文字。
2. 点击 “播放语音” 按钮,浏览器将朗读输入的文字内容。

四、总结

通过这篇教程,我们使用 HTML、CSS 和 JavaScript 构建了一个简单的文本转语音应用。该项目不仅展示了 Web Speech API 的强大功能,同时也展示了如何将前端技术结合起来实现有趣的功能。

希望这篇文章对你有所帮助,如果有任何问题或改进建议,欢迎在评论区留言!

相关文章

你从未见过的 10 个令人惊叹的 JavaScript 技巧

 HTML+CSS+JS 实现动态模态超级英雄卡片效果

使用 HTML 和 CSS 创建 3D 菜单效果


http://www.kler.cn/a/385128.html

相关文章:

  • 『大模型笔记』IBM技术团队:什么是智能体型RAG!
  • kafka+zookeeper的搭建
  • 解决ImportError: DLL load failed while importing _message: 找不到指定的程序。
  • Unet++改进3:添加NAMAttention注意力机制
  • 基于Prometheus的client_golang库实现应用的自定义可观测监控
  • MySQL存储目录与配置文件(ubunto下)
  • 倒反天罡?程序员没有被AI替代,却间接用AI替代了产品经理
  • C++_判断文件是否存在_access函数
  • Redis - Set 集合
  • Vue项目中点击按钮后浏览器屏幕变黑,再次点击恢复的解决方法
  • Vue 3 的 全局状态管理
  • Git Bash 常用命令
  • uniapp项目 存储数据到手机本地
  • 离线安装nvidia docker2插件
  • golang通用后台管理系统06(用户菜单树信息)
  • Go的JSON转化
  • 论文2—《基于柔顺控制的智能神经导航手术机器人系统设计》文献阅读分析报告
  • 北斗智能定位平板终端|三防平板|北斗有源终端|北斗搜救终端
  • keil-C51 linux下开发小记
  • 在实际的网络通信中,客户端发起请求的常见流程
  • DeFi 4.0峥嵘初现:主权金融时代的来临
  • 【案例】Excel使用宏来批量插入图片
  • Aop+自定义注解实现数据字典映射
  • SQL(2)
  • C#-内部类、分部类、分部方法
  • 融合虚拟化与容器技术,打造灵活又安全的AI算力服务