我目前正在为学校制作一个项目,我将在那里制作一个教孩子们如何阅读的程序.我对该程序的基本想法是产生句子,然后让Windows Anna说出来.我的问题是,如何通过Java访问Winodws Anna?并且有更好的方法吗?
谢谢
我正在使用 Microsoft 的语音平台运行时,我正在使用该SpVoice界面使运行时说出我想要的句子。
为了停止演讲中间的句子,我创建了这样的函数
public void StopSpeak()
{
try
{
Speaker.Speak("", SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak);
}
catch (COMException ex)
{
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我在语音平台说话时运行它时,我收到了这个 com 错误:
Exception from HRESULT: 0x80045006
Run Code Online (Sandbox Code Playgroud)
我查了微软,这意味着波形设备正忙,我现在意识到每次语音平台忙说一句话时我都会收到这个错误。
是否有其他方法可以使用 SpVoice 或 Speech Platform Runtime 附带的任何其他界面或类来停止语音中间句子?
谢谢。
我正在开发一个应用程序,它会读出文档中的文本,我想添加暂停和恢复功能,但我在TTS中找不到任何pause()方法.有什么方法可以暂停..?
我试图添加到我的应用程序特定的TTS引擎 - 不是基于系统,所以每个人将有另一个,但一个人.
在文档中有方法:setEngineByPackageName(),看起来它会成为我想要的.但是,在早些时候看到其他类似的问题我发现了一些使用这种方法的东西:https://stackoverflow.com/questions/12549086/selecting-required-tts-programmatically-in-android.
它看起来很不错,但它在系统检查后是否安装了TTS引擎,如果没有安装TTS引擎则使用它(没有定义哪一个).
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Fire off an intent to check if a TTS engine is installed
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
}
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == MY_DATA_CHECK_CODE)
{
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS)
{
// success, create the TTS instance
mTts = new TextToSpeech(this, this);
}
else
{
// missing data, install it
Intent …Run Code Online (Sandbox Code Playgroud) 我有下面的代码.这是Kotlin.知道为什么textToSpeech来自于textToSpeech.setLanguage(Locale.UK)告诉没有参考解决textToSpeech?
val textToSpeech = TextToSpeech(
applicationContext,
object : TextToSpeech.OnInitListener {
override fun onInit(status: Int) {
if (status == TextToSpeech.SUCCESS) {
textToSpeech.setLanguage(Locale.UK)
}
}
})
Run Code Online (Sandbox Code Playgroud)
起初我认为它是一个Idea kotlin插件bug,但似乎它实际上无法编译
我正在通过Google Cloud的文本到语音API生成语音,我想在说出单词时突出显示它们。
是否可以获取口语或句子的时间戳记?
我想下载具有以下规格的 YouTube 播放列表的字幕:
我尝试过以下代码片段。但它正在下载所有可用语言和 vtt 格式的字幕。
ydl_opts = {
'allsubtitles': True,
'writesubtitles': True,
'convertsubtitles':True,
'skip_download':True,
'outtmpl': 'C:/Users/shrayani.mondal/Desktop/Personal/Python Projects/Speech to text/Subtitles/%(title)s.%(ext)s',
#'subtitlesformat': 'srt'
'subtitleslangs':'en',
'postprocessors': [{
'key': 'FFmpegSubtitlesConvertor',
'format': 'srt',
}],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download(['https://www.youtube.com/watch?v=Lp7E973zozc&list=PLQltO7RlbjPJnbfHLsFJWP-DYnWPugUZ7'])
Run Code Online (Sandbox Code Playgroud)
我的第二个目标是为没有字幕的视频使用自动生成的英文字幕。我该如何包含 if 语句呢?
使用浏览器 api voiceSynthesis.resume() 我正在尝试在 android chrome 上恢复暂停的语音
我已经在 mac os mojave 上的 chrome 桌面版本 78.0.3904.97 上测试了下面的代码,它在演讲暂停后恢复演讲,没有任何问题。但相同的代码无法在 android chrome 版本 77.x 和 78.x 上恢复演讲
重现步骤
这是 Chrome 中的错误吗?
<!DOCTYPE html>
<html>
<head>
<title>Parcel Sandbox</title>
<meta charset="UTF-8" />
</head>
<body>
<button id="play">Play</button>
<button id="pause">Pause</button>
<button id="resume">Resume</button>
<div id="data"></div>
<script>
const play = document.getElementById("play");
const pause = document.getElementById("pause");
const resume = document.getElementById("resume");
play.addEventListener("click", function() {
document.getElementById("data").innerText = "play";
var utterance = new SpeechSynthesisUtterance( …Run Code Online (Sandbox Code Playgroud)javascript google-chrome text-to-speech speech-synthesis web-audio-api
尽管我已经启用了计费并设置了文本转语音配额,但我从谷歌云收到此错误,任何人都可以帮助我吗?
您的应用程序已使用来自 Google Cloud SDK 或 Google Cloud Shell 的最终用户凭据进行身份验证,但 texttospeech.googleapis.com 不支持这些凭据。我们建议在 gcloud 中配置 billing/quota_project 设置或通过 auth/impersonate_service_account 设置使用服务帐户。有关服务帐户以及如何在应用程序中使用它们的更多信息,请参阅https://cloud.google.com/docs/authentication/。
我希望能够测试哪些文本转语音可供我的 iOS 应用程序与 AVSpeechSynthesis 一起使用。生成已安装声音的列表很容易,但 Apple 将其中一些设置为禁止应用程序使用,我想知道哪些。
例如,考虑以下测试代码 (swift 5.1):
import AVFoundation
...
func voiceTest() {
let speechSynthesizer = AVSpeechSynthesizer()
let voices = AVSpeechSynthesisVoice.speechVoices()
for voice in voices where voice.language == "en-US" {
print("\(voice.language) - \(voice.name) - \(voice.quality.rawValue) [\(voice.identifier)]")
let phrase = "The voice you're now listening to is the one called \(voice.name)."
let utterance = AVSpeechUtterance(string: phrase)
utterance.voice = voice
speechSynthesizer.speak(utterance)
}
}
Run Code Online (Sandbox Code Playgroud)
当我打电话时voiceTest(),控制台输出是这样的:
en-US - Nicky (Enhanced) - 2 [com.apple.ttsbundle.siri_female_en-US_premium]
en-US - Aaron - 1 [com.apple.ttsbundle.siri_male_en-US_compact] …Run Code Online (Sandbox Code Playgroud) text-to-speech ×10
android ×3
audio ×1
c# ×1
com ×1
gcloud ×1
ios ×1
java ×1
javascript ×1
kotlin ×1
python-3.x ×1
siri ×1
voice ×1
youtube-dl ×1