我已经编写了一个小型的Android Demo来使用不同语言的TTS.我有两个按钮,西班牙语和英语的布局.按下按钮会触发所选语言的发声.
但是,我无法更改语言(setLanguage(Locale locale)).我可以手动完成,使用手机设置并将TTS语言更改为美国,英国,意大利,德国等,但我的代码似乎不起作用.你能告诉我问题出在哪里吗?
谢谢!!
package com.ignacio.SpeakAPP;
import android.app.Activity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.util.Log;
import android.view.View;
import java.util.Locale;
public class SpeakAPPActivity extends Activity implements OnInitListener {
private static final String TAG = "TextToSpeechDemo";
private TextToSpeech mTts;
public boolean Passer = false;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
/** Handle the action of the English Button **/
public boolean talknowEN(View v)
{
mTts = new TextToSpeech …Run Code Online (Sandbox Code Playgroud) 我尝试创建一个文本视频,其中文本通过文本到语音进行叙述.
要创建的视频文件,我用VideoFileWriter的Aforge.Net是以下几点:
VideoWriter = new VideoFileWriter();
VideoWriter.Open(CurVideoFile, (int)(Properties.Settings.Default.VideoWidth),
(int)(Properties.Settings.Default.VideoHeight), 25, VideoCodec.MPEG4, 800000);
Run Code Online (Sandbox Code Playgroud)
要大声朗读文本,我使用SpeechSynthesizer类并将输出写入波流
AudioStream = new FileStream(CurAudioFile, FileMode.Create);
synth.SetOutputToWaveStream(AudioStream);
Run Code Online (Sandbox Code Playgroud)
我想突出显示视频中的单词,所以我通过SpeakProgress事件同步它们:
void synth_SpeakProgress(object sender, SpeakProgressEventArgs e)
{
curAuidoPosition = e.AudioPosition;
using (Graphics g = Graphics.FromImage(Screen))
{
g.DrawString(e.Text,....);
}
VideoWriter.WriteVideoFrame(Screen, curAuidoPosition);
}
Run Code Online (Sandbox Code Playgroud)
最后,我使用合并视频和音频 ffmpeg
using (Process process = new Process())
{
process.StartInfo.FileName = exe_path;
process.StartInfo.Arguments =
string.Format(@"-i ""{0}"" -i ""{1}"" -y -acodec copy -vcodec copy ""{2}""", avi_path, mp3_path, output_file);
// ...
}
Run Code Online (Sandbox Code Playgroud)
问题是,对于像微软Hazel,Zira和David这样的声音,在Windows 8.1中,视频与音频不同步,音频比显示的字幕快得多.但是,对于Windows …
我创建了一个具有语音语音功能的应用程序,使用AVSpeechSynthesizer和显示AVSpeechSynthesisVoice: speechVoices()TableView中函数的语言列表.用户可以从TableView中选择语音语言.
我想要实现的下一件事是添加语音性别,以便用户可以在Siri app中切换默认的男性或女性声音.我不想让它变得复杂,只是寻找默认的男性或女性声音.
返回的声音speechVoices()具有特定于每个声音的默认男声或女声.
我能改变它吗?我已经UIPickerView在应用设置页面上放置了男声和女声之间的选择.
但是,我做了一些研究,但没有找到任何文件.似乎在最新的iOS版本之前没有这样的支持.
到目前为止,有没有人试图实现这样的功能?
text-to-speech speech-synthesis ios avspeechsynthesizer swift
正如一个人能够使用各种语音到文本的"听写"工具将口语转换成相应的文本,我想知道是否有类似的工具将口语转换成相应的SSML.也就是说,除了与说话者的声音中存在的任何语调,韵律,暂停/休息,变形等相关的相关SSML标签之外,它还将提供文本.
text-to-speech speech-synthesis speech-to-text ssml alexa-voice-service
我现在正在制作智能家居控制系统,我有一点问题.我正在考虑将Cosmos用于基本系统,并为其添加所需的命名空间库,但由于通常的System.Speech.Recognition命名空间过分依赖于Windows Speech API,我不得不忘记使用它.
所以我的问题是,是否有任何(如果可能的话免费)语音识别和/或语音合成器库用于C#,具有以下内容:
一般用法,非Windows依赖库是最好的,当然,如果它也是免费的.
什么文本语音和语音识别库可用于Clojure?到目前为止我发现了
https://github.com/klutometis/speech-recognition
https://github.com/klutometis/speech-synthesis
这两者都使用谷歌,因此依赖于网络.
我正在寻找那些不依赖互联网工作的人
speech-recognition clojure text-to-speech speech-synthesis libraries
该语音合成API允许文本到语音功能的浏览器测试版.但是,浏览器会自动播放TTS请求的结果.如何访问音频结果以进行后处理并禁用API的默认行为?
所以我试图向 SpeechSynthesizer 添加一种新语言,特别是挪威语,但它似乎没有安装。
发现这个: Add another voice into .NET Speech (但这里的问题是不支持捷克语)
我已经从这里安装了挪威语包:http : //www.microsoft.com/en-us/download/details.aspx?id=27224
在我的代码中,我使用它来检查它是否已安装:
foreach (var voice in speaker.GetInstalledVoices())
{
Console.WriteLine(voice.VoiceInfo.Description);
}
Run Code Online (Sandbox Code Playgroud)
但它只输出: Microsoft Zira Desktop - 英语(美国)
检查了文本到语音转换工具,这也是唯一的选择。还尝试注销/登录并重新启动计算机。
有人知道怎么修这个东西吗?
我正在玩Chrome的speechSynthesis
msg = new SpeechSynthesisUtterance("some text");
msg.lang = "fr-FR" ;
window.speechSynthesis.speak(msg);
Run Code Online (Sandbox Code Playgroud)
当我发现这个奇怪的问题时:如果您的设备处于离线状态,它就不能再说了.我在网上搜索但没有找到任何解释.
这不能离线工作吗?
(如果你知道它需要在线的原因,请在评论中告诉我.)
我努力把苹果语音合成音频单元的东西(只适用于MacOS的,不是的iOS)到AudioKit,我已经建立了一个AKSpeechSynthesizer类(最初由wangchou在此创建pull请求)和演示项目都可以在发展AudioKit的分支.
我的项目与这个可可语音合成示例非常相似,但在这个项目中,速率变量可以在每分钟的低字数(40)到高数字(300 ish)之间平滑变化和变化.但是,我的项目以默认速率175开始,任何更改都会使速率降低到爬行速度 - 除非您将其更改为350,否则速度会超快.
我不知道我在做什么与这个例子有什么不同,因为两个项目都依赖
SetSpeechProperty(speechChannel, kSpeechRateProperty, newRate as NSNumber?)
Run Code Online (Sandbox Code Playgroud)
设定费率.
最大的区别是我的合成器被设置为音频单元,而我认为工作示例只使用默认输出到扬声器.
频率(音调)或调制(pitchMod)的其他参数也表现出奇怪的行为,但它们不那么引人注意,而且这两个项目的工作都有点滑稽.
有人可以告诉我为什么我的工作不起作用或通过拉取请求修复它?任何帮助将在代码中受到高度赞赏和归属.
谢谢!
speech-synthesis ×10
c# ×3
.net ×1
aforge ×1
android ×1
audio ×1
audiokit ×1
clojure ×1
ios ×1
javascript ×1
libraries ×1
multilingual ×1
ssml ×1
swift ×1