如何将 ibm watson 语音中的扬声器标签更改为 android 中的文本 api?

少女冈萨雷斯

再会!

我需要帮助开发我的 android 应用程序。是否可以将扬声器标签的默认名称更改为自定义名称,例如人名。我想创建这样的对话作为我的例子..

 Jhon: Hi
 Marie: Hello
 Jhon: Good Day To you marie..
 Marie:......

请帮助我需要帮助是否可以更改扬声器标签的默认名称我需要您的帮助我是这样创建的

private RecognizeOptions getRecognizeOptions(InputStream captureStream) {
    return new RecognizeOptions.Builder()
            .audio(captureStream)
            .contentType(ContentType.OPUS.toString())
            .model("en-US_BroadbandModel")
            .interimResults(true)
            .inactivityTimeout(2000)
            .timestamps(true)
            .speakerLabels(true)
            .maxAlternatives(3)
            .smartFormatting(true)
            .timestamps(true)
            .wordConfidence(true)
            .build();
}

这是 .speakerLabels 的方法

public class SpeakerLabelsDiarization {
public static class RecoToken {
    private Double startTime;
    private Double endTime;
    private Long speaker;
    private String word;
    private Boolean spLabelIsFinal;


    /**
     * Instantiates a new reco token.
     *
     * @param speechTimestamp the speech timestamp
     */
    RecoToken(SpeechTimestamp speechTimestamp) {
        startTime = speechTimestamp.getStartTime();
        endTime = speechTimestamp.getEndTime();
        word = speechTimestamp.getWord();
    }

    /**
     * Instantiates a new reco token.
     *
     * @param speakerLabel the speaker label
     */
    RecoToken(SpeakerLabelsResult speakerLabel) {
        startTime = Double.valueOf(speakerLabel.getFrom());
        endTime = Double.valueOf(speakerLabel.getTo());
        speaker = speakerLabel.getSpeaker();
    }

    /**
     * Update from.
     *
     * @param speechTimestamp the speech timestamp
     */
    public void updateFrom(SpeechTimestamp speechTimestamp) {
        word = speechTimestamp.getWord();
    }

    /**
     * Update from.
     *
     * @param speakerLabel the speaker label
     */
    public void updateFrom(SpeakerLabelsResult speakerLabel) {
        speaker = speakerLabel.getSpeaker();
    }
}

/**
 * The Class Utterance.
 */
public static class Utterance {
    private Integer speaker;
    private String transcript = "";

    /**
     * Instantiates a new utterance.
     *
     * @param speaker    the speaker
     * @param transcript the transcript
     */
    public Utterance(final Integer speaker, final String transcript) {
        this.speaker = speaker;
        this.transcript = transcript;
    }
}

/**
 * The Class RecoTokens.
 */
public static class RecoTokens {

    private Map<Double, RecoToken> recoTokenMap;

    /**
     * Instantiates a new reco tokens.
     */
    public RecoTokens() {
        recoTokenMap = new LinkedHashMap<Double, RecoToken>();
    }

    /**
     * Adds the.
     *
     * @param speechResults the speech results
     */
    public void add(SpeechRecognitionResults speechResults) {
        if (speechResults.getResults() != null)
            for (int i = 0; i < speechResults.getResults().size(); i++) {
                SpeechRecognitionResult transcript = speechResults.getResults().get(i);
                if (transcript.isFinalResults()) {
                    SpeechRecognitionAlternative speechAlternative = transcript.getAlternatives().get(0);

                    for (int ts = 0; ts < speechAlternative.getTimestamps().size(); ts++) {
                        SpeechTimestamp speechTimestamp = speechAlternative.getTimestamps().get(ts);
                        add(speechTimestamp);
                    }
                }
            }
        if (speechResults.getSpeakerLabels() != null)
            for (int i = 0; i < speechResults.getSpeakerLabels().size(); i++) {
                add(speechResults.getSpeakerLabels().get(i));
            }

    }

    /**
     * Adds the.
     *
     * @param speechTimestamp the speech timestamp
     */
    public void add(SpeechTimestamp speechTimestamp) {
        RecoToken recoToken = recoTokenMap.get(speechTimestamp.getStartTime());
        if (recoToken == null) {
            recoToken = new RecoToken(speechTimestamp);
            recoTokenMap.put(speechTimestamp.getStartTime(), recoToken);
        } else {
            recoToken.updateFrom(speechTimestamp);
        }
    }

    /**
     * Adds the.
     *
     * @param speakerLabel the speaker label
     */
    public void add(SpeakerLabelsResult speakerLabel) {
        RecoToken recoToken = recoTokenMap.get(speakerLabel.getFrom());
        if (recoToken == null) {
            recoToken = new RecoToken(speakerLabel);
            recoTokenMap.put(Double.valueOf(speakerLabel.getFrom()), recoToken);
        } else {
            recoToken.updateFrom(speakerLabel);
        }

        if (speakerLabel.isFinalResults()) {
            markTokensBeforeAsFinal(speakerLabel.getFrom());
            report();
            cleanFinal();
        }
    }

    private void markTokensBeforeAsFinal(Float from) {
        Map<Double, RecoToken> recoTokenMap = new LinkedHashMap<>();

        for (RecoToken rt : recoTokenMap.values()) {
            if (rt.startTime <= from)
                rt.spLabelIsFinal = true;
        }
    }

    /**
     * Report.
     */
    public void report() {
        List<Utterance> uttterances = new ArrayList<Utterance>();
        Utterance currentUtterance = new Utterance(0, "");

        for (RecoToken rt : recoTokenMap.values()) {
            if (currentUtterance.speaker != Math.toIntExact(rt.speaker)) {
                uttterances.add(currentUtterance);
                currentUtterance = new Utterance(Math.toIntExact(rt.speaker), "");
            }
            currentUtterance.transcript = currentUtterance.transcript + rt.word + " ";
        }
        uttterances.add(currentUtterance);

        String result = GsonSingleton.getGson().toJson(uttterances);
        System.out.println(result);
    }

    private void cleanFinal() {
        Set<Map.Entry<Double, RecoToken>> set = recoTokenMap.entrySet();
        for (Map.Entry<Double, RecoToken> e : set) {
            if (e.getValue().spLabelIsFinal) {
                recoTokenMap.remove(e.getKey());
            }
        }
    }

}


private static CountDownLatch lock = new CountDownLatch(1);

}

输出是这样的`

 speaker 0: Hi
 speaker 1: Hello
 speaker 0: Good Day To you marie..
 speaker 1:......

我想像这样输出

 Jhon: Hi
 Marie: Hello
 Jhon: Good Day To you marie..
 Marie:......

我的问题是。这是否可以在 ibm watspon 语音文本 api 中创建这样的内容,因为我在他们的文档中阅读了他们没有提到如何更改标签我只是想澄清一下是否可能

楚楚斯

API 和文档中没有任何内容表明可以使用服务本身修改输出中的标签。https://cloud.ibm.com/docs/services/speech-to-text/output.html#speaker_labels

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

NodeRED和IBM Watson:如何将Watson的响应{{payload}}插入到index.html中?

来自分类Dev

Android中的Watson API

来自分类Dev

将AVAudioPlayer输出更改为Swift中的扬声器?

来自分类Dev

如何解决 IBM Watson 中的 com.ibm.watson.developer_cloud.service.exception.NotFoundException?

来自分类Dev

如何使用IBM Watson Websocket界面转录存储在android内存中的音频文件?

来自分类Dev

使用WebSockets的IBM Watson语音到文本

来自分类Dev

将脚本导入 IBM WATSON STUDIO 中的笔记本

来自分类Dev

Flutter中的IBM Watson Assistant:如何显示选项?

来自分类Dev

IBM Watson Assistant,如何从数组中删除多个项目?

来自分类Dev

Powershell 中的 IBM Watson 视觉识别

来自分类Dev

IBM Watson 问答系统中的对话

来自分类Dev

IBM Watson:无效的API密钥

来自分类Dev

将IBM Watson API与jquery的$ .ajax一起使用

来自分类Dev

将IBM Watson API与jquery的$ .ajax一起使用

来自分类Dev

IBM Watson语音对文本的单词置信度差异

来自分类Dev

从IBM Watson Personality Insights解析JSON并在Android中获取值

来自分类Dev

如何通过REST API使用IBM Watson的QA服务

来自分类Dev

IBM Watson NLU:如何通过API端点确定剩余的信用?

来自分类Dev

如何将setFriendlyName()用于来自IBM Mobilefirst中本机android的特定设备

来自分类Dev

如何使用 IBM watson 情感分析分析任何文本

来自分类Dev

IBM Watson Assistant - 将插槽数据存储在自定义定义的实体中?

来自分类Dev

Android如何将Api中的String解析为int

来自分类Dev

如何在 IBM Watson Assistant (Conversation) 中获得 vaule @sys-time?

来自分类Dev

如何使用 Nodejs 在 IBM watson 助手中添加对话节点的更新多重响应

来自分类Dev

XSL v1 Reg-expression - 在文本中查找模式 - IBM Watson explorer WEX

来自分类Dev

IBM Watson Conversation服务中节点的多个答案

来自分类Dev

如何将文本方向更改为android中的开关的右滑动?

来自分类Dev

如何将文本方向更改为android中的开关的右滑动?

来自分类Dev

用于更新IBM Watson Conversation实体的API

Related 相关文章

  1. 1

    NodeRED和IBM Watson:如何将Watson的响应{{payload}}插入到index.html中?

  2. 2

    Android中的Watson API

  3. 3

    将AVAudioPlayer输出更改为Swift中的扬声器?

  4. 4

    如何解决 IBM Watson 中的 com.ibm.watson.developer_cloud.service.exception.NotFoundException?

  5. 5

    如何使用IBM Watson Websocket界面转录存储在android内存中的音频文件?

  6. 6

    使用WebSockets的IBM Watson语音到文本

  7. 7

    将脚本导入 IBM WATSON STUDIO 中的笔记本

  8. 8

    Flutter中的IBM Watson Assistant:如何显示选项?

  9. 9

    IBM Watson Assistant,如何从数组中删除多个项目?

  10. 10

    Powershell 中的 IBM Watson 视觉识别

  11. 11

    IBM Watson 问答系统中的对话

  12. 12

    IBM Watson:无效的API密钥

  13. 13

    将IBM Watson API与jquery的$ .ajax一起使用

  14. 14

    将IBM Watson API与jquery的$ .ajax一起使用

  15. 15

    IBM Watson语音对文本的单词置信度差异

  16. 16

    从IBM Watson Personality Insights解析JSON并在Android中获取值

  17. 17

    如何通过REST API使用IBM Watson的QA服务

  18. 18

    IBM Watson NLU:如何通过API端点确定剩余的信用?

  19. 19

    如何将setFriendlyName()用于来自IBM Mobilefirst中本机android的特定设备

  20. 20

    如何使用 IBM watson 情感分析分析任何文本

  21. 21

    IBM Watson Assistant - 将插槽数据存储在自定义定义的实体中?

  22. 22

    Android如何将Api中的String解析为int

  23. 23

    如何在 IBM Watson Assistant (Conversation) 中获得 vaule @sys-time?

  24. 24

    如何使用 Nodejs 在 IBM watson 助手中添加对话节点的更新多重响应

  25. 25

    XSL v1 Reg-expression - 在文本中查找模式 - IBM Watson explorer WEX

  26. 26

    IBM Watson Conversation服务中节点的多个答案

  27. 27

    如何将文本方向更改为android中的开关的右滑动?

  28. 28

    如何将文本方向更改为android中的开关的右滑动?

  29. 29

    用于更新IBM Watson Conversation实体的API

热门标签

归档