首先创建一个语音服务
创建成功后进入该服务
然后找到 密钥和终结点
保存密钥和位置/区域
密钥1和密钥2其中一个就可以
首先添加依赖
com.microsoft.cognitiveservices.speech client-sdk 1.18.0
我使用时这个依赖是不能直接从我之前常用的maven库下载来的,azure还提供了包含对语音 SDK 的 Maven 存储库的引用
maven-cognitiveservices-speech Microsoft Cognitive Services Speech Maven Repository https://csspeechstorage.blob.core.windows.net/maven/
引用完就可以开始java代码了
文字转语音服务public static void main(String[] args) {
//配置
SpeechConfig speechConfig = SpeechConfig.fromSubscription("aaaa",
"bbbb");
//语言类型为中文
speechConfig.setSpeechSynthesisLanguage("zh-cn"); // e.g. "de-DE"
//讲话风格
speechConfig.setSpeechSynthesisVoiceName("zh-CN-XiaomoNeural");
AudioConfig audioConfig = AudioConfig.fromDefaultSpeakerOutput();
SpeechSynthesizer synthesizer = new SpeechSynthesizer(speechConfig, audioConfig);
synthesizer.SpeakText("语音转换真有趣!");
}
配置中的aaaa填准备阶段保存下来的密钥
配置中的bbbb填准备阶段保存下来的和位置/区域
讲话风格可以自定义
更多可以参照
https://docs.microsoft.com/zh-cn/azure/cognitive-services/speech-service/speech-synthesis-markup?tabs=csharp
如果需要将生成的语音保存下来,就将
AudioConfig audioConfig = AudioConfig.fromDefaultSpeakerOutput();
替换为
AudioConfig audioConfig = AudioConfig.fromWavFileOutput("D:/test.wav");
即可
java代码
SpeechConfig speechConfig = SpeechConfig.fromSubscription("aaaa",
"bbbb");
AudioConfig audioConfig = AudioConfig.fromWavFileInput("D:/test.wav");
SpeechRecognizer recognizer = new SpeechRecognizer(speechConfig,"zh-cn", audioConfig);
Future task = recognizer.recognizeOnceAsync();
SpeechRecognitionResult result = task.get();
System.out.println("转换成功的语言:" + result.getText());
运行结果
注意
配置中的aaaa填准备阶段保存下来的密钥
配置中的bbbb填准备阶段保存下来的和位置/区域
语言一定要记得配置,不然会生成的是奇怪的句子哈哈哈哈eg:转换成功的语言:Huion drawing, giochi.
java代码
public static void main(String[] args) throws ExecutionException, InterruptedException {
SpeechTranslationConfig translationConfig = SpeechTranslationConfig.fromSubscription(
"aaaa",
"bbbb");
String fromLanguage = "zh-cn";
String[] toLanguages = { "en-US" };
translationConfig.setSpeechRecognitionLanguage(fromLanguage);
for (String language : toLanguages) {
translationConfig.addTargetLanguage(language);
}
AudioConfig audioConfig = AudioConfig.fromWavFileInput("D:/test.wav");
try (TranslationRecognizer recognizer = new TranslationRecognizer(translationConfig, audioConfig)){
System.out.printf("来源语音设定为'%s' ", fromLanguage);
TranslationRecognitionResult result = recognizer.recognizeOnceAsync().get();
if (result.getReason() == ResultReason.TranslatedSpeech) {
System.out.printf("音频转文字为: "%s"n", result.getText());
for (Map.Entry pair : result.getTranslations().entrySet()) {
System.out.printf("文字翻译为 '%s': %sn", pair.getKey(), pair.getValue());
}
}
}
}
配置中的aaaa填准备阶段保存下来的密钥
配置中的bbbb填准备阶段保存下来的和位置/区域
fromLanguage 配置音频的语言类型
toLanguages 配置翻译的语言类型,这是一个数组,可以配置多种语言



