我想从我的C#应用程序解析PDF文件并创建一个音频文件.我该怎么办?
我特别想找一个好的pdf文本库或者从文本中删除pdf文件的方法.
我正在开发一个支持多语言的文本到语音的iPhone应用程序.
这是我的请求网址
requestUrlStr = @"http://www.translate.google.com/translate_tts?tl=en&q=hello";
Run Code Online (Sandbox Code Playgroud)
对于英语,上面的网址没有问题
但对中国人来说
requestUrlStr = @"http://www.translate.google.com/translate_tts?tl=zh-TW&q=??";
Run Code Online (Sandbox Code Playgroud)
我知道上面的url会给出'Bad URL',所以我用follow方法将字符串编码成 UTF-8
requestUrlStr = [requestUrlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)
它会变成
http://www.translate.google.com/translate_tts?tl=zh-CN&q=%E4%BD%A0%E5%A5%BD
Run Code Online (Sandbox Code Playgroud)
然后Google TTS无法识别此中文文本.
如何通过按任何字母键来获得拼音?例如,我想A通过按下'A'键来获得语音声音.
我正在使用Microsoft SAPI v5.1.你能指出我正确的方向吗?
我遇到isSpeaking()方法问题.传递QUEUE_FLUSH给speak()方法时,isSpeaking()工作正常.但是,当我对多个话语进行排队时(通过传递QUEUE_ADD),该isSpeaking()方法false在多个话语排队后立即开始返回.
然后我偶然发现了TtsService该类的源代码并看到了这段代码:
public boolean isSpeaking() {
return (mSelf.mIsSpeaking && (mSpeechQueue.size() < 1));
}
Run Code Online (Sandbox Code Playgroud)
有谁有任何想法,为什么这种方法以这种方式实施?
我的Android教程声明我可以明确告诉TTS引擎使用哪个流:
对于音乐播放:
params.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_MUSIC));
Run Code Online (Sandbox Code Playgroud)
并拨打电话:
params.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_VOICE_CALL));
Run Code Online (Sandbox Code Playgroud)
我的理解是,音频路由到蓝牙耳机的作品,从而STREAM_MUSIC去A2DP(在Android的蓝牙设置又名"媒体音频")和STREAM_VOICE_CALL去HSP(在Android的蓝牙设置又名"手机音频").
但不管我是否使用STREAM_MUSIC或STREAM_VOICE_CALL在我的小应用程序中,音频总是出于某种原因A2DP.
我做错了什么?有没有办法将TTS输出路由到耳机的HSP配置文件?
该文件说:"TTS引擎检查是否忙讲."
但我只是实现一个呼叫isSpeaking()中的onUtteranceCompletedListener,在那里我有至少10周悬而未决的言论和没有人做我收到true.
假设isSpeaking()实际上按照文档记录,我必须得出结论,我正在调用它.
调用TextToSpeech.isSpeaking()返回有效结果的要点是什么?
我正在UITextView使用flite-1.4-iphone 进行文字转换.在阅读文本时,我想自动逐字突出显示文本.
这是我目前的代码:
-(IBAction)btnClick:(id)sender
{
[indicator startAnimating];
textToSpeech = [[TextToSpeech alloc] init];
[textToSpeech setVoice:@"cmu_us_awb"];
[textToSpeech speakText:txtview.text];
if ([txtview.text isEqualToString:@""])
{
[textToSpeech stopTalking];
[self animate];
}
}
Run Code Online (Sandbox Code Playgroud) 我在我的应用中使用了Android的“ 文字转语音”默认引擎,但是女性的声音听起来像是40岁以上的女性,而且她的声音有些机械人。
我看过其他似乎使用Google内置的TTS的应用程序,但听起来好多了,例如年轻的女人声音更自然。
Android主Google搜索中也使用了这种“自然”的声音,例如,当您按一下麦克风并询问“谁是美国总统”之类的问题(Siri风格)时,女人的声音会告诉您答案。
如何在代码中实现这种声音?
基本上这就是我在代码中所做的:
TextToSpeech tts = new TextToSpeech(this, this);
.
.
.
tts.setLanguage(Locale.US);
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
Run Code Online (Sandbox Code Playgroud) 在最近运行Android版本的手机上,与旧款手机相比,TextToSpeech引擎在首次调用时可能需要大约6秒的时间才能做出反应.
我的测试代码如下所示.(已编辑:Android 4.0.3 Ice Cream Sandwich的替代代码,API 15及更高版本,最后显示.)
在运行4.4.4 KitKat的1年前摩托罗拉Moto G上,TextToSpeech引擎可能需要7秒多才能完成对speak()"已启动"一词的第一次调用.这是我的代码的输出.
D/speak? call: 1415501851978
D/speak? done: 1415501859122, delay: 7144
Run Code Online (Sandbox Code Playgroud)
在3岁的三星SGH-T499Y上运行2.2 Froyo,完成发言只需不到一秒钟:
D/speak? call: 1415502283050
D/speak? done: 1415502283900, delay: 850
Run Code Online (Sandbox Code Playgroud)
有没有办法发现在这6秒延迟期间发生的事情?
有没有办法让更新(并且据称更快)的设备更快地做出反应?
package com.example.speak
import android.app.Activity;
import android.speech.tts.TextToSpeech;
import android.os.Bundle;
import android.util.Log;
import java.util.HashMap;
import java.util.Locale;
public class MainActivity extends Activity implements TextToSpeech.OnInitListener,
TextToSpeech.OnUtteranceCompletedListener {
private final String TAG = "speak";
private Activity activity;
private TextToSpeech tts;
private long launchTime;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tts = …Run Code Online (Sandbox Code Playgroud) 我正在使用AVTpeechSynthesizer for TextToSpeech.我必须在HeadPhone左侧的Channel(Mono 2)中演奏.我有以下设置输出通道.
func initalizeSpeechForRightChannel(){
let avSession = AVAudioSession.sharedInstance()
let route = avSession.currentRoute
let outputPorts = route.outputs
var channels:[AVAudioSessionChannelDescription] = []
//NSMutableArray *channels = [NSMutableArray array];
var leftAudioChannel:AVAudioSessionChannelDescription? = nil
var leftAudioPortDesc:AVAudioSessionPortDescription? = nil
for outputPort in outputPorts {
for channel in outputPort.channels! {
leftAudioPortDesc = outputPort
//print("Name: \(channel.channelName)")
if channel.channelName == "Headphones Left" {
channels.append(channel)
leftAudioChannel = channel
}else {
// leftAudioPortDesc?.channels?.removeObject(channel)
}
}
}
if channels.count > 0 {
if #available(iOS 10.0, *) {
print("Setting Left Channel") …Run Code Online (Sandbox Code Playgroud) text-to-speech ×10
android ×5
.net ×2
c# ×2
ios ×2
avfoundation ×1
bluetooth ×1
c#-4.0 ×1
c++ ×1
delay ×1
flite ×1
iphone ×1
mfc ×1
performance ×1
sapi ×1
swift ×1
uitextview ×1