热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Java中将文本转换为语音

在 Java 中将文本转换为语音原文:https://www.geeksforgeeks.org/converting-text

在 Java 中将文本转换为语音

原文:https://www.geeksforgeeks.org/converting-text-speech-java/

Java 语音 API:Java 语音 API 允许 Java 应用程序将语音技术融入其用户界面。它定义了一个跨平台的应用编程接口来支持命令和控制识别器、听写系统和语音合成器。

Java 语音支持语音合成,这意味着机器在书面输入的基础上生成口语的过程。

重要的是要记住,Java 语音只是一个规范,即不包括任何实现。因此,第三方提供了实现。javax .语音包定义了识别器、合成器和其他语音引擎的通用功能。软件包 javax.speech.synthesis 扩展了合成器的基本功能。

我们将理解 java API 将文本转换为语音需要什么


  1. 引擎:引擎界面在语音包中提供。“语音引擎”是设计用于处理语音输入或语音输出的系统的通称。

    java
    import javax.speech.Engine;


  2. Central: Central 提供定位、选择和创建语音识别器和语音合成器的功能。

    java
    import javax.speech.Central;


  3. 合成器模式描述符:合成器模式描述符用特定于语音合成器的属性扩展了引擎模式描述符。

    java
    import javax.speech.synthesis.SynthesizerModeDesc;


  4. 合成器:合成器界面提供语音合成功能的主要访问。合成器模式描述增加了两个属性:合成器声音提供的声音列表当合成器启动时要加载的声音。

    java
    import javax.speech.synthesis.Synthesizer;


下面是一个 Java 语音合成的开源实现,名为 FreeTTS 以步骤的形式:


  • 从这里下载 zip 文件夹形式的 FreeTTS

  • 提取 zip 文件并转到

    java
    freetts-1.2.2-bin/freetts-1.2/lib/jsapi.exe


  • 打开jsapi.exe文件并安装。


  • 这将创建一个名为 jsapi.jar 的 jar 文件。这是包含要包含在项目中的 FreeTTS 库的 JAR 库。

  • 在集成开发环境中创建一个新的 Java 项目。

  • 将这个 jsapi.jar 文件包含到您的项目中。

  • 现在将下面的代码复制到您的项目中

  • 执行项目以获得低于预期的输出。

以下是上述项目的代码:

// Java code to convert text to speech
import java.util.Locale;
import javax.speech.Central;
import javax.speech.synthesis.Synthesizer;
import javax.speech.synthesis.SynthesizerModeDesc;
public class TextSpeech {
    public static void main(String[] args)
    {
        try {
            // Set property as Kevin Dictionary
            System.setProperty(
                "freetts.voices",
                "com.sun.speech.freetts.en.us"
                    + ".cmu_us_kal.KevinVoiceDirectory");
            // Register Engine
            Central.registerEngineCentral(
                "com.sun.speech.freetts"
                + ".jsapi.FreeTTSEngineCentral");
            // Create a Synthesizer
            Synthesizer synthesizer
                = Central.createSynthesizer(
                    new SynthesizerModeDesc(Locale.US));
            // Allocate synthesizer
            synthesizer.allocate();
            // Resume Synthesizer
            synthesizer.resume();
            // Speaks the given text
            // until the queue is empty.
            synthesizer.speakPlainText(
                "GeeksforGeeks", null);
            synthesizer.waitEngineState(
                Synthesizer.QUEUE_EMPTY);
            // Deallocate the Synthesizer.
            synthesizer.deallocate();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

输出:

参考文献:


  • https://docs . Oracle . com/CD/e 17802 _ 01/products/Java-media/speech/FOrdeveloper/jsapi-doc/javax/speech/package-summary . html

  • https://www . javatpoint . com/q/5931/Java-用于将音频转换为文本和视频转换为音频的代码

  • http://www.oracle.com/technetwork/java/jsapifaq-135248.html

相关文章:Python 中的文字转语音

本文由阿卡什·莎兰供稿。如果你喜欢 GeeksforGeeks 并想投稿,你也可以使用contribute.geeksforgeeks.org写一篇文章或者把你的文章邮寄到 contribute@geeksforgeeks.org。看到你的文章出现在极客博客主页上,帮助其他极客。

如果你发现任何不正确的地方,或者你想分享更多关于上面讨论的话题的信息,请写评论。


推荐阅读
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了解决java开源项目apache commons email简单使用报错的方法,包括使用正确的JAR包和正确的代码配置,以及相关参数的设置。详细介绍了如何使用apache commons email发送邮件。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • 使用freemaker生成Java代码的步骤及示例代码
    本文介绍了使用freemaker这个jar包生成Java代码的步骤,通过提前编辑好的模板,可以避免写重复代码。首先需要在springboot的pom.xml文件中加入freemaker的依赖包。然后编写模板,定义要生成的Java类的属性和方法。最后编写生成代码的类,通过加载模板文件和数据模型,生成Java代码文件。本文提供了示例代码,并展示了文件目录结构。 ... [详细]
author-avatar
IKUN
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有