我写信给你一个关于NSSpeechSynthesizer的问题。真的对我来说很完美,我看到的唯一奇怪的事情(对我来说)是可用的声音都是优质的声音。
NSArray* voices;
voices = [NSpeechSynthesizer availableVoices];
当我打印阵列中的所有声音时,我可以看到,例如,Silvia和Paolo,但不是Silvia Compact和Paolo Compact。
对于意大利语而言,不幸的是,高级版本有很多错误,他们说的是紧凑的声音没有。所以我希望能够选择Compact版本......你们中的任何人都知道如何让它们可用吗?
非常感谢...
答案 0 :(得分:0)
您可以使用availableVoices,只要语音以“.premium”结尾,请尝试将“.premium”替换为“.compact”。这只适用于用户安装的声音,但对用户来说应该不会感到惊讶。
答案 1 :(得分:-1)
您可以使用标识符设置(Alice是紧凑的意大利语):
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRelativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
LightSide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
buttonOnClick(v);
}
});
DarkSide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
buttonOnClick(v);
}
});
Chubaka.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
buttonOnClick(v);
}
});
}
private void buttonOnClick(View v) {
switch (v.getId()) {
case R.id.LightSide:
LightSide.setText("LightSide");
mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
break;
case R.id.DarkSide:
DarkSide.setText("DarkSide");
mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.colorRed));
break;
case R.id.Chubaka:
Chubaka.setText("Chubakka");
mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.colorBrown));
break;
}
}
在文本之后放置语音,因为我在语音之前设置了语音参数时遇到了问题。