我开发了一个项目,我想发布它使用c#,WPF和System.Speech.Synthesizer对象.阻止此项目发布的问题是,无论何时调用SpeakAsync,都会导致内存泄漏,从而导致最终失败.我相信在使用这个物体后我已经正确清理,但找不到治愈方法.我通过Ants Memory Profiler运行程序,它报告WAVEHDR和WaveHeader随着每次调用而增长.
我已经创建了一个示例项目来试图查明原因,但我仍然处于亏损状态.任何帮助,将不胜感激.
该项目使用VS2008,是针对.NET 3.5和Any CPU的ac#WPF项目.您需要手动添加对System.Speech的引用.
这是代码:
<Window x:Class="SpeechTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<StackPanel Orientation="Vertical">
<Button Content="Start Speaking" Click="Start_Click" Margin="10" />
<Button Content="Stop Speaking" Click="Stop_Click" Margin="10" />
<Button Content="Exit" Click="Exit_Click" Margin="10"/>
</StackPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)
// Start of code behind
using System;
using System.Windows;
using System.Speech.Synthesis;
namespace SpeechTest
{
public partial class Window1 : Window
{
// speak setting
private bool speakingOn = false;
private int curLine = 0;
private string [] speakLines = {
"I am wondering",
"Why …Run Code Online (Sandbox Code Playgroud) 我只是偶然发现了TextToSpeech.addEarcon(String, String)Android的TTS API中的方法.我实际上无法在网上找到更多信息,所以有人知道什么是耳环吗?
谢谢!
这个问题的第一部分现在是它自己的,在这里:分析Accents的文本
问题:如何在生成的语音中添加重音符号?
我想出了什么:
我并不仅仅意味着重音符号或变形,或者像这样的任何单数.我的意思是完整的英国口音,或苏格兰口音,或俄罗斯等.
我认为这也可以在语言之外完成.例如:俄语中的东西可以用英国口音产生,或者普通话中的东西可以带有俄语口音.
我认为基本过程是这样的:
这实际上更像是一个普通的DSP问题,但我想提出一个编程算法来做这个而不是一般的想法.
algorithm audio language-theory signal-processing text-to-speech
我几乎到处都试图找到一种方法来保存我的android tts输出音频文件.我查看了这些帖子:
但无法找到/理解答案.我这样使用synthesizeToFile():
HashMap<String, String> myHashRender = new HashMap<String, String>();
myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, result);
String fileName = "/Android/data/com.android.voicelanglearning.vll/ttsfile1.wav";
tts.synthesizeToFile(result, myHashRender, fileName);
Run Code Online (Sandbox Code Playgroud)
所以我转发了同样的问题.任何帮助深表感谢.
谢谢你,Mounika
我创建了一个Twilio应用程序,它涉及使用Twilio的TwimL <Say>命令来读取构成用户先前输入的ID的数字列表(例如,3638194746219190或沿着这些行的某些内容).由于它是一个很长的数字列表,我让应用程序读回数字列表以确认用户已正确输入它们.由于它是动态的,我无法预先录制它 - 它必须与之相关<Say>,但Twilio 以太快的速度读取它.
我目前使用空格和逗号回放它们的数字以减慢速度,例如:'3, 6, 3, 8, 1, 9, 4, 7, 4, 6, 2, 1, 9, 1, 9, 0',这有点帮助,但它仍然以太快的速度读取列表.
你知道如何强迫Twilio的<Say>命令进一步减慢文本到语音播放的速度吗?
我正在使用TextToSpeech类在android中工作,并且拥有一个具有特定长度的字符串.我想计算这个生成的文本到语音音频的估计时间(我知道我可以得到音频,然后得到这个生成的音频的时间长度,但我想探索其他选择).
我正在尝试获取speechRate(但似乎没有可行)并且使用String的长度创建一些公式得到结果估计时间.
任何sugestions?
提前致谢.
PD:关于spechRate:getSpeechRate()?(或如何判断TTS当前设定的速率)
我正在寻找一种将文本转换为音素的工具,(如文本到语音软件)我可以编程一个,但它不会没有错误并且需要花费很多时间!
所以我的问题是:
是否有一个简单的工具,例如"你好"转换为"HH AH0 L OW1"
也许一些命令行工具,所以我可以捕获标准输出?我正在寻找'Arpabet'风格的音素(参见'你好'的例子).
espeak做了类似的事情,但输出不是Arpabet风格,并且音素不会被某些决定者分开.
我创建了一个具有语音语音功能的应用程序,使用AVSpeechSynthesizer和显示AVSpeechSynthesisVoice: speechVoices()TableView中函数的语言列表.用户可以从TableView中选择语音语言.
我想要实现的下一件事是添加语音性别,以便用户可以在Siri app中切换默认的男性或女性声音.我不想让它变得复杂,只是寻找默认的男性或女性声音.
返回的声音speechVoices()具有特定于每个声音的默认男声或女声.
我能改变它吗?我已经UIPickerView在应用设置页面上放置了男声和女声之间的选择.
但是,我做了一些研究,但没有找到任何文件.似乎在最新的iOS版本之前没有这样的支持.
到目前为止,有没有人试图实现这样的功能?
text-to-speech speech-synthesis ios avspeechsynthesizer swift
我猜这个问题几乎说明了一切?
我宁愿不访问Microsoft Translator和Project Hawaii等云服务?
我可以访问任何直接的API吗?
(对于metro应用程序)
windows text-to-speech speech-to-text voice-recognition windows-8
当尝试使用 pyttsx3 时,我只能使用英语语音。我也希望能够使用荷兰语。
我已经在 Windows 设置菜单中安装了文本转语音语言包。但我仍然只能使用默认的英文语音。
我怎样才能解决这个问题?