标签: text-to-speech

SpeechSynthesizer的SpeakProgressEventArgs是否不准确?

使用.Net 3.5中的System.Speech.Synthesis.SpeechSynthesizer类,SpeakProgressEventArgs的AudioPosition属性似乎不准确.

以下代码生成以下输出:

码:

using System;
using System.Speech.Synthesis;
using System.Threading;

namespace SpeechTest
{
    class Program
    {
        static ManualResetEvent speechDoneEvent = new ManualResetEvent(false);

        static void Main(string[] args)
        {
            SpeechSynthesizer synthesizer = new SpeechSynthesizer();

            synthesizer.SpeakProgress += new EventHandler<SpeakProgressEventArgs>(synthesizer_SpeakProgress);

            synthesizer.SpeakCompleted += new EventHandler<SpeakCompletedEventArgs>(synthesizer_SpeakCompleted);

            synthesizer.SetOutputToWaveFile("Test.wav");

            synthesizer.SpeakAsync("This holiday season, support the music you love by shopping at Made in Washington, online and at one of five local stores. Made in Washington chocolates, bountiful gift baskets and ornaments are the perfect holiday gifts for family, friends …
Run Code Online (Sandbox Code Playgroud)

c# text-to-speech speechsynthesizer .net-3.5

6
推荐指数
1
解决办法
1735
查看次数

有自然语音的TTS引擎吗?

我正在寻找一个体面的文本到语音软件,并找不到任何自然的声音.我不喜欢听微软的机器人声音,虽然安娜在Windows 7(也可能是vista)中取消它,但她仍然远非自然.

我需要的:

一个自由文本到语音库

首选语言:C#,Java

我计划创建一个体面的TTS软件,或者更好的是,如果事情进展顺利,还可以创建一个MS Word/Office插件.我正在研究Windows 7(显然).

c# java text-to-speech

6
推荐指数
1
解决办法
2076
查看次数

TextToSpeech,playEarcon和.wav文件

在我的一个应用程序中,我有一个活动,语音合成字母数字参考字符串,字母/数字/字母/数字,例如"ABC123"听起来像"Ay,bee,sea,one two three".由于这是一组有限的声音,我认为通过使用playEarcon方法播放数字和字母的预先录制的.wav文件,使TTS引擎无需互联网连接即可工作.

我已将所有36个wav文件放在res/raw文件夹中,并在初始化TTS引擎时将资源ID映射到字母.这很好用,但是.apk现在要大得多,因为wav文件在apk中未压缩存储.我想让apk的尺寸更小.

另一个问题的答案中,它指出wav文件被排除在压缩之外.(我不明白为什么,因为他们通常拉低到原来的约40%)一个检查apk的内部,这似乎是真的.

由于代码中没有引用资源文件的扩展名,我尝试将wavs重命名为.waw,.abc,.spc.所有这些都被压缩但不幸的是,playEarcon方法在调用时不会产生声音,除非扩展名为.wav.

总之,我想强制TTS引擎在没有wav扩展名的情况下播放文件,或者说服它来压缩.wav文件.

将非常感谢所有建议.值得我发布下面最小的可证明代码示例.我的工作文件名为gb_a.wav,gb_b.wav等.如果扩展名已更改,则会停止发声.

public class WavSpeakerActivity extends Activity implements
        RadioGroup.OnCheckedChangeListener, TextToSpeech.OnInitListener {

    static final int mGBLetterResIds[] = { R.raw.gb_a, R.raw.gb_b, R.raw.gb_c,
            R.raw.gb_d, R.raw.gb_e, R.raw.gb_f, R.raw.gb_g, R.raw.gb_h,
            R.raw.gb_i, R.raw.gb_j, R.raw.gb_k, R.raw.gb_l, R.raw.gb_m,
            R.raw.gb_n, R.raw.gb_o, R.raw.gb_p, R.raw.gb_q, R.raw.gb_r,
            R.raw.gb_s, R.raw.gb_t, R.raw.gb_u, R.raw.gb_v, R.raw.gb_w,
            R.raw.gb_x, R.raw.gb_y, R.raw.gb_z };
    static final int mGBNumberResIds[] = { R.raw.gb_zero, R.raw.gb_one,
            R.raw.gb_two, R.raw.gb_three, R.raw.gb_four, R.raw.gb_five,
            R.raw.gb_six, R.raw.gb_seven, R.raw.gb_eight, R.raw.gb_nine };

    static final String mGbStr = "GB";
    static final String mAlphabet = …
Run Code Online (Sandbox Code Playgroud)

android text-to-speech

6
推荐指数
1
解决办法
1303
查看次数

Android TTS(文字转语音)没有正确发音单个字母

我试图在我的Activity中实现Android的文本到语音技术.这是一个简单的文字游戏,当用户按下某个按钮时,我希望TTS引擎拼写单个字母.例如,当用户按下A按钮时,我想听到"A".

问题是该.speak方法只接受String作为输入.所以,当我告诉TTS引擎我只想要一个单字母字符串时,声音不是字母的发音.有什么方法可以让它正确地发出单字母字符串吗?

该解决方案至今,是作为字符串输入,听起来像字母词,如"蜜蜂"用于,"看"的Ç等.但是F,H等呢?

还有其他想法吗?

android text-to-speech

6
推荐指数
1
解决办法
3679
查看次数

适用于iOS的高品质文字转语音SDK

我一直在寻找适合iOS的高品质TTS库.我找到的最好的是OpenEars,这是免费的,非常推荐,但声音太金属化,无法满足我的需求.

有没有人可以为iOS推荐质量非常好的TTS库(甚至不是免费的)?听起来像Siri或更像人类的东西......

谢谢!

iphone text-to-speech ios ios6

6
推荐指数
1
解决办法
1万
查看次数

使用语音合成器在Windows应用商店应用中使用文本转换语音

我正在运行Hello world的示例我的代码是

private async void Button_Click(object sender, RoutedEventArgs e)
        {
            var synth = new Windows.Media.SpeechSynthesis.SpeechSynthesizer();
            Windows.Media.SpeechSynthesis.SpeechSynthesisStream stream = await synth.SynthesizeTextToStreamAsync("Hello World");

            var mediaElement = new MediaElement();
            mediaElement.SetSource(stream,stream.ContentType);
            mediaElement.Play();
        }
Run Code Online (Sandbox Code Playgroud)

当我调试它时,我收到一个错误:

An exception of type 'System.IO.FileNotFoundException' occurred in SunnahForKids.exe but was not handled in user code
Additional information: The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Run Code Online (Sandbox Code Playgroud)

c# text-to-speech windows-8.1

6
推荐指数
1
解决办法
1565
查看次数

Phonegap TTS插件Android无法正常工作

我正在使用来自https://github.com/domaemon/org.apache.cordova.plugin.tts的TTS插件但是该插件似乎不起作用.它甚至没有初始化.

安装如下插件(PHONEGAP 3.3)

phonegap plugin add https://github.com/domaemon/org.apache.cordova.plugin.tts.git
phonegap build android
Run Code Online (Sandbox Code Playgroud)

在phonegap config.xml中添加了以下内容

<gap:plugin name="org.apache.cordova.plugins.tts" value="org.apache.cordova.plugins.tts"/>
Run Code Online (Sandbox Code Playgroud)

在我的javascript中添加了以下代码

window.plugins.tts.startup(startupWin, fail);
function startupWin(result) {
    console.log("Startup win");
    // When result is equal to STARTED we are ready to play
    if (result == TTS.STARTED) {
        window.plugins.tts.getLanguage(win, fail);
        window.plugins.tts.speak("The text to speech service is ready");
        window.plugins.tts.isLanguageAvailable("en_US", function() {
            addLang("en_US", "English (American)");
        }, fail);
        window.plugins.tts.isLanguageAvailable("en_GB", function() {
            addLang("en_GB", "English (UK)");
        }, fail);
        window.plugins.tts.isLanguageAvailable("fr", function() {
            addLang("fr", "French");
        }, fail);
        window.plugins.tts.isLanguageAvailable("de", function() {
            addLang("de", "German");
        }, …
Run Code Online (Sandbox Code Playgroud)

text-to-speech cordova sencha-touch-2.2

6
推荐指数
1
解决办法
6084
查看次数

Android:两个文本到语音转换的实例非常缓慢

我需要在我的Andorind应用程序中实现功能,它允许在当前的Acitivity中播放两种不同的合成语言 - 例如有两个按钮Say English and Say French

我尝试过以下两种方式,但是它们都无效,因为在声音播放之前有很长的延迟:

  1. 第一种方法:创建单个TTS实例并通过setLocale方法更改语言,具体取决于必须播放的语言.不幸的是,通过setLocale在语言之间切换非常耗时,这会在点击按钮后对反应产生影响
  2. 第二种方法:为各自的语言创建两个TTS实例.不幸的是,延迟也发生在这里,第一种解决方案之间没有区别.

你能帮忙解决这个恼人的问题吗?

android multiple-instances instance text-to-speech

6
推荐指数
1
解决办法
1826
查看次数

iOS背景中的文字转语音

我在Apple Watch中触发了在后台播放文字转语音的间歇性(aargh!)问题.我已正确设置后台模式,AVSession类别和WatchKitExtensionRequest处理程序.(见下文.)我之前有过这个工作,并且无法弄清楚改变了什么.(可能是iOS 9有问题吗?"之前"意味着,除其他外,iOS 8.)

问题是:当应用程序从Watch获取请求并且应用程序在后台或手机处于休眠状态(已锁定)时,语音有时会立即播放,而其他时间则无法播放,直到应用程序被带来到前台.操作系统似乎有时排队音频,有时不排队.我在成功和失败案例之间找不到任何共同点.我可以登录,要speakUtterance()的调用验证被造的所有情况.但它的行为有所不同,显然是随机的.唯一的线索是,可能是应用程序在后台运行的时间越长,立即说话的可能性就越小.

这让我脱掉头发.建议欢迎.

在info.plist中:

所需的背景模式:App使用AirPlay播放音频或流音频/视频

在AppDelegate.application中:didFinishLaunching:withOptions():

do {
    try AVAudioSession.sharedInstance().setCategory(
        AVAudioSessionCategoryPlayback, 
        withOptions:.DuckOthers
    )
    try AVAudioSession.sharedInstance().setActive(true)
} catch let error as NSError {
    // etc...
}
Run Code Online (Sandbox Code Playgroud)

在AppDelegate.application中:handleWatchKitExtensionRequest ...():

var bgTaskId:UIBackgroundTaskIdentifier = 0
bgTaskId = application.beginBackgroundTaskWithName(
    "Prose WKE handler",
    expirationHandler: {
        application.endBackgroundTask(bgTaskId)
    }
)
//... Post notification to call Text-to-Speech
application.endBackgroundTask(bgTaskId)
Run Code Online (Sandbox Code Playgroud)

audio text-to-speech background-process ios

6
推荐指数
1
解决办法
1697
查看次数

在python中交谈时将语音转换为文本

我制作了一个程序,可以让我说出来并将其转换为文本。我停止讲话后,它会转换我的声音。我想做的是在讲话时将语音转换为文本。

https://www.youtube.com/watch?v=96AO6L9qp2U&t=2s&ab_channel=StormHack的播放时间为2:31。

注意Tony显示器的右上角。它可以在通话时将他的声音转换为文本。我想做同样的事情。能做到吗

这是我的整个程序:

import speech_recognition as sr 
import pyaudio


r = sr.Recognizer()
with sr.Microphone() as source:
    print("Listening...")
    audio = r.listen(source)
    try:
        text = r.recognize_google(audio)
        print("You said : {}".format(text))
    except:
        print("Sorry could not recognize what you said")
Run Code Online (Sandbox Code Playgroud)

解决方案,提示,提示或其他任何东西,将不胜感激,在此先感谢您。

python text-to-speech voice-recording voice-recognition python-3.x

6
推荐指数
1
解决办法
422
查看次数