java使用azure初入门

java使用azure初入门,第1张

java使用azure初入门 语音服务试用: 开始准备:

首先创建一个语音服务

创建成功后进入该服务

然后找到 密钥和终结点

保存密钥和位置/区域
密钥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 配置翻译的语言类型,这是一个数组,可以配置多种语言

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4969553.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存