在 Android Webview 上选择文本转速度的语言

2024-06-26

我已经搜索了很多小时但没有真正的答案。

是否可以为文本转语音功能选择与默认语言不同的语言?

此代码在 PC 上的 chrome 上完美运行,但在 Android 浏览器上不起作用:

$(function(){
  if ('speechSynthesis' in window) {
    speechSynthesis.onvoiceschanged = function() {
      var $voicelist = $('#voices');

      if($voicelist.find('option').length == 0) {
        speechSynthesis.getVoices().forEach(function(voice, index) {
          console.log(voice);
          var $option = $('<option>')
          .val(index)
          .html(voice.name + (voice.default ? ' (default)' :''));

          $voicelist.append($option);
        });

        $voicelist.material_select();
      }
    }

    $('#speak').click(function(){
      var text = $('#message').val();
      var msg = new SpeechSynthesisUtterance();
      var voices = window.speechSynthesis.getVoices();
      msg.voice = voices[$('#voices').val()];
      msg.rate = $('#rate').val() / 10;
      msg.pitch = $('#pitch').val();
      msg.text = text;

      msg.onend = function(e) {
        console.log('Finished in ' + event.elapsedTime + ' seconds.');
      };

      console.log(speechSynthesis);

      speechSynthesis.speak(msg);
    })
  } else {
    $('#modal1').openModal();
  }
});
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/materialize/0.95.1/css/materialize.min.css">

<div class="container">
  <div class="row">
    <nav>
      <div class="nav-wrapper">
        <div class="col s12">
          <a href="#" class="brand-logo">Text to speech example</a>
        </div>
      </div>
    </nav>
  </div>
  <form class="col s8 offset-s2">
    <div class="row">
      <label>Choose voice</label>
      <select id="voices"></select>
    </div>
    <div class="row">
      <div class="col s6">
        <label>Rate</label>
        <p class="range-field">
          <input type="range" id="rate" min="1" max="100" value="10" />
        </p>
      </div>
      <div class="col s6">
        <label>Pitch</label>
        <p class="range-field">
          <input type="range" id="pitch" min="0" max="2" value="1" />
        </p>
      </div>
      <div class="col s12">
        <p>N.B. Rate and Pitch only work with native voice.</p>
      </div>
    </div>
    <div class="row">
      <div class="input-field col s12">
        <textarea id="message" class="materialize-textarea"></textarea>
        <label>Write message</label>
      </div>
    </div>
    <a href="#" id="speak" class="waves-effect waves-light btn">Speak</a>
  </form>  
</div>

<div id="modal1" class="modal">
  <h4>Speech Synthesis not supported</h4>
  <p>Your browser does not support speech synthesis.</p>
  <p>We recommend you use Google Chrome.</p>
  <div class="action-bar">
    <a href="#" class="waves-effect waves-green btn-flat modal-action modal-close">Close</a>
  </div>
</div>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/materialize/0.95.1/js/materialize.min.js"></script>

多谢!! 问候


好吧,经过搜索和搜索终于找到了解决方案,而且非常非常简单......

在 PC Chrome 中,语音的语言隐含在语音数据包中,但在移动 Chrome 中,必须在 SpeechSynthesisUtterance 对象中显式指定语言。

所以对于这个例子,它可以添加行

  msg.lang = voices[$('#voices').val()].lang;

如果有人需要帮助,我已经准备好了。

问候。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android Webview 上选择文本转速度的语言 的相关文章

  • 在浏览器中输入有效网址时,React 路由不断重定向到登陆页面

    我有这个路由配置 它工作得很好 只有一件事一直让我烦恼 即使导航应用程序有效 当我转到地址栏并按 Enter 键时 它会将我重定向到 添加用户即使我不更改网址并按 Enter 键 这是我的路线配置 function AppRoutes se
  • 为什么我收到 TypeError: array[i] is undefined? [复制]

    这个问题在这里已经有答案了 因此 在我的程序中 我有一个包含值的字典 散列的数组 当我循环遍历该数组时 我得到了我需要的值 但 for 循环之后的任何代码都不会执行 因为控制台输出 TypeError array i is undefine
  • 如何从一个活动组中的活动导航到android中的另一个活动

    我有两个标签 在这两个选项卡中我有不同的活动组 如何从一个活动组中的一个活动导航到android中的另一个活动 请帮我举出合适的例子 就我而言 我确实喜欢这样 当我单击父组最后一个活动中的完成 提交按钮时 我提交了值 将值存储到服务器 数据
  • 在android中绘制单点触摸运动路径

    我正在尝试制作一个绘图应用程序 我想要绘制单点触摸运动路径在 android 中 就像 Swype 键盘的方式一样 因此我想存储每个像素的 x y 坐标将运动路径转化为数据结构 我如何使用 MotionEvent 指针来执行此操作 您可能不
  • 使用device_filter.xml资源文件过滤USB枚举结果

    按照中的说明进行操作Android USB 主机文档 http developer android com guide topics connectivity usb host html discovering d 我设法通过USB DEV
  • 正则表达式替换“NO-BREAK SPACE”

    我正在寻找一个正则表达式来替换字符串中的 NO BREAK SPACE 有一些与 NO BREAK SPACE 相关的问题 但似乎没有一个问题能让我找到正确的答案 到目前为止 我尝试使用 字符串 AB 的第二个字符是不间断空格 但没有成功
  • 升级到 Angular v9 并启用 Ivy 后 Angular 编译失败

    我们最近将 Angular 应用程序升级到了最新版本的 Angular Angular v9 我们所有的依赖项也都升级了 ng update 表示我们所有的依赖项都 按顺序 当我们在启用 Ivy 的情况下构建应用程序时 编译过程会失败并出现
  • 分页打印所有数据

    我在打印数据表中具有分页的所有数据时遇到问题 我已经做过研究并在此链接中发现了同样的问题 仅打印 https stackoverflow com questions 468881 print div id printarea div onl
  • 如果没有发生触摸事件,Android SurfaceView 会变慢

    我正在制作一款游戏 除了游戏循环之外一切都很顺利 我正在使用 SurfaceView 并绘制 2D Sprites 位图 目前游戏是一艘穿过小行星带的飞船 飞船停留在屏幕中央 手机向任一方向倾斜以移动小行星 小行星改变位置而不是玩家 当旧的
  • JavaScript 相当于 htonl?

    对于 AJAX 请求 我需要发送一个幻数作为请求正文的前四个字节 首先是最高有效字节 以及请求正文中的其他几个 非常量 值 JavaScript 中是否有相当于 htonl 的东西 例如 给定 0x42656566 我需要生成字符串 Bee
  • 未捕获的语法错误:无法在“文档”上执行“querySelector”

  • 待定意图的多个实例

    我创建了一个小部件 单击该小部件会激活 PendingIntent 问题是 当我屏幕上有多个小部件时 只有最新的小部件才会启动 PendingIntent 我读过一些关于独特请求代码的内容 但没有弄清楚这一点 有什么想法可以让多个小部件和
  • Progruard 和 R8 已弃用 - Android Studio 3.6

    将 Android Studio 升级到 3 6 后 我收到了有关 Proguard 和 R8 的弃用警告 这是否意味着我们不应该在项目中使用混淆 或者在发布模式下构建时我们应该考虑另一个等效选项 选项 android enableR8 已
  • 如何在知道其十进制值的情况下找出菜单中项目的字符串 ID?

    我正在使用 android support v7 appcompat 在一个活动中 我想在操作栏中显示后退按钮 我愿意 public class News extends ActionBarActivity Override protect
  • 异步等待和获取语法在 React 中不起作用

    这是我的代码 export class App extends Component constructor props super props async fetchSport sport let headers new Headers h
  • 单击按钮通知时关闭状态栏

    单击通知按钮后如何关闭状态栏 I tried this https stackoverflow com a 15571784 1735077 但我有一个例外 java lang NoSuchMethodException collapse
  • 点击超链接时调用 javascript 函数

    我正在 ASP NET 的 C 代码隐藏文件中动态创建超链接 我需要在客户端点击时调用 JavaScript 函数 我该如何做到这一点 仍然更整洁 而不是typical href or href javascript void or hre
  • Android 三星 S I9000 屏幕尺寸和密度问题

    我在 Samsung S I9000 上使用应用程序时遇到问题 我的应用程序上的按钮比应有的大得多 此外 系统选择 res values small 作为值的来源 总而言之 它的表现就好像该设备有一个非常小的屏幕 尽管它应该是 800x48
  • 从 Android 上的 .net Web 服务获取列表

    我有 net Web 服务 我想在 android 上使用它 这个网络服务的方法返回List Of String 但我在android上没有得到响应 我能做些什么 这是代码 我已经研究了 3 天 但还没有找到任何解决方案 简而言之 我需要来
  • Android 6.0 中的打瞌睡和应用程序待机模式

    Google 在 Android 6 0 操作系统中引入了 Doze 和应用程序待机模式 设备将进入Doze如果设备被拔掉并且在一段时间内未使用并且应用程序在一段时间内保持不活动状态 则该应用程序将进入模式StandBy模式 如果我错了请纠

随机推荐

  • 传递额外的参数来绑定?

    我有两个类似这样的函数 primaryImageLoaded this setState primaryImageLoaded true secondaryImageLoaded this setState secondaryImageLo
  • 在 Maps API v2 中完全禁用 onMarkerClickListener

    我想禁用点击 点击map markers 我知道你可以disable default behavior通过设置一个空的map setOnMarkerClickListener并返回 true 但是 这仍然将点击视为单击标记 我想将水龙头传递
  • UWP 应用程序从系统上的随机位置访问文件

    在UWP中存在文件和权限限制 因此我们只能直接从少数文件夹访问文件 或者我们可以使用filepicker从系统上的任何位置访问 如何使用从 filepicker 中选取的文件并在应用程序运行时随时再次使用它们 尝试通过路径再次使用它们 但它
  • Seekbar 和 InsetDrawable 获取进度

    嗨 我尝试自定义一个搜索栏 这是我的问题 main xml
  • 在 ARC 中异步生成 CGImagesForTimes

    如果我在启用了 ARC 的项目中运行以下命令 则完成处理程序永远不会触发 但如果没有 ARC 它会按预期工作 我在这里缺少什么 NSURL url NSURL URLWithString http media w3 org 2010 05
  • 如何在值为 std::set (从某物映射到集合)的 std::map 中使用 emplace() ?

    问题 我有一个std map
  • 如何检查 Windows 文件索引是否打开或关闭

    C 中是否有一个 API 可用于检查文件索引是否打开或关闭 代码受到赞赏 WMI 在 C 中是一个痛苦 但本机服务 API 非常干净 SC HANDLE hSCManager OpenSCManager NULL NULL SC MANAG
  • 如何在 m1 Mac 上安装 pandas

    clang Wno unused result Wsign compare Wunreachable code fno common dynamic DNDEBUG g fwrapv O3 Wall iwithsysroot System
  • xslt-1.0 迭代固定值列表

    我需要根据输入生成固定数量语言的 XML 结构 该输入可能包含也可能不包含每种语言的信息 如果信息丢失 我需要生成空元素 问题是 我需要在输出结构中的许多地方迭代语言 最简单的方法是使用类似的东西
  • SQL CASE 语句

    我有以下查询 我想将它们放入 sql CASE 语句中 这样我只有一个查询 但我不知道该怎么做 有人可以帮助我吗 IF SELECT EtlLoadId FROM ssislogs audit processcontrol WHERE Su
  • 如何用mockito模拟最后一堂课

    我有最后一堂课 是这样的 public final class RainOnTrees public void startRain some code here 我在其他类中使用这个类 如下所示 public class Seasons R
  • WordPress 固定链接永远不会在本地主机 Ubuntu 12.10 上工作

    除默认设置外 Wordpress 永久链接不起作用 如何启用此重写 我试过了 sudo a2enmod rewrite sudo service apache2 restart 永久链接保存到 localhost wordpress 中的
  • Alembic - sqlalchemy 初始迁移

    我在创建初始迁移时遇到问题 该迁移将自动包含我通过使用共享 Base declarative base 在 models py 中定义的表 当我输入命令时 alembic revision autogenerate alembic 创建一个
  • 删除字段后重置 JavaScript 计数器

    我有一个 javascript 函数 可以添加带有计数器的输入字段 现在 当我删除其中一个字段时 它会被删除 但计数器仍在继续 JS 或 JQuery 有没有办法重置计数器并自动递增计数器 JS code function var scnt
  • Android Studio 中显示的 Android 设备列表卡住了

    卡在 Android Studio 中加载设备中 在 Stack Overflow 中发现以下问题但没有帮助 Android Studio 设备列表加载时卡住 https stackoverflow com q 51101178 11630
  • 如何根据路径/URL 选择图像?

    我想根据图片的 URL 来选择图片 但由于某种原因 它没有发挥作用 最终我追求的是这样的东西 var imgs img src images object png not hidden 但即使是简单的事情 比如 img src images
  • 如何在react中导出csv对象

    我试图弄清楚是否有任何方法可以使用 React 在我的网页上单击 导出 按钮来下载 csv 文件 这是我现在在组件下的内容 div div
  • 有效存储和查询 GPS 坐标

    我想创建一个大型 GPS 坐标数据库 可以通过 返回 此坐标 n 米范围内的所有坐标 来查询该数据库 我需要它尽可能高效 因此循环遍历数据库中的所有坐标并计算坐标是否在 n 米内并不是理想的解决方案 有更简单的解决方案吗 Thanks 我通
  • 电子商务网站的货币换算 - 防止因四舍五入而出现错误的总购物车

    我正在向电子商务应用程序添加多货币支持 我解决这个问题的方法是让应用程序保持其基础货币 并让模板在显示价格时调用 PriceDisplay 函数 插件 因此 模板继续接收以美元金额表示的价格 如果需要 priceDisplay 函数会正确转
  • 在 Android Webview 上选择文本转速度的语言

    我已经搜索了很多小时但没有真正的答案 是否可以为文本转语音功能选择与默认语言不同的语言 此代码在 PC 上的 chrome 上完美运行 但在 Android 浏览器上不起作用 function if speechSynthesis in w