TextToSpeech 就像
在模拟器上工作正常,但在我的设备(galaxy s)上不起作用。我需要安装什么额外的东西吗?
提前致谢..
○
我正在尝试制作一个应用程序(仅适用于我自己),可以正确地发音奇怪(幻想)的名字。我找到了 chrome 的 TTS api 和 W3C 的 SpeechSynthesis API,但是看起来 Chrome 在说出剩余的文本之前去除了所有 SSML 标签:
<?xml version="1.0"?>
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
http://www.w3.org/TR/speech-synthesis/synthesis.xsd"
xml:lang="en-US">
<!-- Phoneme representation is cut short to exaggerate problem -->
<phoneme alphabet="ipa" ph="təmei̥"> tomato </phoneme>
</speak>
Run Code Online (Sandbox Code Playgroud)
如何让 JSFiddle 中的 SSML 在 Chrome 中正确发音?
仅供参考,我正在运行 Windows,因此我无法使用特定于 mac 的发音标记。
提前致谢!
html javascript google-chrome text-to-speech speech-synthesis
spoken1 = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if(status != TextToSpeech.ERROR){
spoken1.setLanguage(Locale.US);
}
}
})
f1 = new File("test1.wav");
abc = spoken1.synthesizeToFile("text",null, f1, "test12");
Run Code Online (Sandbox Code Playgroud)
大家好,我是android和java开发的新手。目前我正在为将 TTS 转换为音频文件的小应用程序工作。我还让应用程序说出我想要的。我坚持使用在 API 级别 21 及更高版本中已弃用的 SynthesizeToFile。“abc”变量的值总是“-1”。我也在谷歌上找到了一些帮助,但结果是 API 级别 21 及以上没有答案
有人知道如何使 synthesizeToFile 方法返回正值吗?并将音频文件也获取到媒体库?
编辑:我找到了原因,如何授予创建文件的权限是在 Android 版本之间更改,在我的本地 VM 上,它是 Android API 级别 24,它应该请求运行权限,并且清单中的更改权限对于 API 级别 24 来说不够。
另外如果 API 级别 22 及以下,代码运行良好。
android text-to-speech audio-recording media-player writetofile
孟加拉语内容的 TTS 在我的 Nexus 5x 中运行良好,但在其他手机中则不然。在其他即三星手机只能说英语单词但跳过(不说)孟加拉语单词。
任何人都可以获取此类问题,请帮助我。
谢谢。
代码:
@Override
public void onInit(int i) {
if (i == TextToSpeech.SUCCESS) {
int result = mTextToSpeech.setLanguage(new Locale("bn_IN"));///sf/ask/558111641/
floatRead.setImageResource(R.drawable.ic_volume_off);
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.i("TTS", "This Language is not supported");
AppApplication.getInstance().showToast("This Language is not supported");
}
read(mNewsDetails.title, true);
read(mNewsDetails.plain_text, false);
} else {
floatRead.setImageResource(R.drawable.ic_read);
}
}
Run Code Online (Sandbox Code Playgroud)
`
void read(String text, boolean flush) {
if (flush == true) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP)
mTextToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, null, null);
else
mTextToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, …Run Code Online (Sandbox Code Playgroud) 在我当前的 Android 项目中,我必须在锁定任务模式(单一用途应用程序/信息亭应用程序)下使用 tts(读取消息)。在“正常”应用程序模式下一切正常,但是当我尝试在锁定任务模式下使用文本到语音转换时,没有声音发出。
我将 'com.google.android.tts' packgake 添加到setLockTaskPackages()但它仍然不起作用。
在锁定任务模式下,您还有其他解决方案或示例使用 tts 吗?
编辑:
解决方案非常简单,只是不要忘记在 set User Restriction() 中设置属性参数在我的情况下:
setUserRestriction(UserManager.DISALLOW_MOUNT_PHYSICAL_MEDIA, false); setUserRestriction(UserManager.DISALLOW_ADJUST_VOLUME, false);
我在我的 android 应用程序中使用 TextToSpeak 功能,并意识到它在说出实际单词之前需要一些延迟。
onCreate(){
textToSpeech = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if (status != TextToSpeech.ERROR) {
textToSpeech.setLanguage(Locale.UK);
}
}
});
textToSpeech.speak("Hello World", TextToSpeech.QUEUE_FLUSH, null, null);
performAction();
}
performAction(){…}
Run Code Online (Sandbox Code Playgroud)
如您所见,我在使用 TTS .speak() 方法后立即调用 performAction 方法,但 3 秒延迟会导致一些不准确。
我怎样才能触发 performAction 方法来立即调用这个词。
我是 JavaScript 的新手,我试图通过将按钮链接到synth.pause(speakText);whereconst synth = window.speechSynthesis;和来添加暂停按钮const speakText = new SpeechSynthesisUtterance(textInput.value);。
因为我在我的 speak() 函数中构造了我的 speakText 对象,所以我无法让 pause 函数访问 speakText。我尝试通过在函数外部调用其构造函数来使 speakText 成为全局变量,但这会导致 speak() 抛出错误。
关于如何实现这一目标的任何想法?
JS代码:
//Speak
const speak = () => {
//Check to see if already speaking
if (synth.speaking && state === "play") {
console.error("Already speaking");
state = "paused";
console.log("state: " + state);
return;
}
//Make sure there is some input
if (textInput.value !== "" && state === "stop") {
const speakText = new …Run Code Online (Sandbox Code Playgroud)我正在尝试使用语音合成 API。它适用于桌面浏览器和移动 Chrome,但不适用于移动 Safari。
const msg = new SpeechSynthesisUtterance("Hello World");
window.speechSynthesis.speak(msg);
Run Code Online (Sandbox Code Playgroud)
我添加了一个小测试,似乎 Safari 支持该 API,这可能是权限问题导致它不起作用吗?
if ("speechSynthesis" in window) {
alert("yay");
} else {
alert("no");
}
Run Code Online (Sandbox Code Playgroud) 我正在使用一个简单的代码来使用 Text-To-Speech:
package ch.yourclick.kitt.fragments;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.speech.tts.TextToSpeech;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import java.util.Locale;
import ch.yourclick.kitt.R;
/**
* A simple {@link Fragment} subclass.
* Use the {@link GeneralFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class GeneralFragment extends Fragment {
private TextToSpeech tts;
public GeneralFragment() {
// Required empty public constructor
}
/**
* Use this factory method to create a new instance of
* this fragment …Run Code Online (Sandbox Code Playgroud) 我想知道如何检查我当前对 Amazon Polly 的使用情况。
我目前处于免费层,所以我找不到任何关于计费的信息,因为我还没有超过每月 300 万个字符。
但是我想控制我每天使用的角色数量,这样我就可以计算出我在免费套餐结束时将来要花多少钱。对于发展来说,这对我来说也是必要的。
有没有办法限制我每月想使用的字符数?这样我以后就没有问题了吗?
提前致谢
text-to-speech ×10
android ×6
javascript ×3
java ×2
amazon-polly ×1
html ×1
limit ×1
locking ×1
media-player ×1
task ×1
writetofile ×1