AWS Transcribe предлагает два варианта создания собственного словаря. Для получения дополнительной информации Пользовательские словари
- Использование списка
- Использование таблицы
Я могу создавать пользовательские словари в обоих направлениях через консоль AWSно когда дело доходит до AWS Java SDK, я могу создать его, используя список. В случае «использование таблицы» выдает ошибку
Причина отказа
Словарь, который вы пытаетесь использоватьСоздать содержит недопустимые символы или неправильно отформатированные термины. Для получения дополнительной информации см. Руководство разработчика.
AmazonTranscribe transcribe = AmazonTranscribeClient.builder().build();
CreateVocabularyRequest vocabularyRequest = new CreateVocabularyRequest();
vocabularyRequest.setLanguageCode(LanguageCode.EnUS.toString());
vocabularyRequest.setPhrases(Arrays.asList("Phrase\tIPA\tSoundsLike\tDisplayAs", "helloooo\t\thello\thailo"));
vocabularyRequest.setVocabularyName("table-clone");
CreateVocabularyResult vocabularyResult = transcribe.createVocabulary(vocabularyRequest);
Но я могу создать тот же вокаб , используя таблицу (через консоль AWS), поэтому я не думаю, что естьпроблема с моим Vocab.
Пример 1. Через консоль AWS
Еще одна важная вещь, на которую следует обратить внимание, это то, что когда мы создаем Vocab с использованием представления списка, AWS добавляет конечный разделитель ( ENDOFDICTIONARYTRANSCRIBE ). Но он не добавляет этот разделитель, когда мы создаем вокаб с использованием табличного представления
Случай 2: через AWS Java SDK
Конечный разделитель добавляется в конец файла в обоих случаях (список и таблица). Я думаю, что это может быть проблемой.
Подводя итог
Я хочу создать пользовательский словарь , используя таблицу через AWS Java SDK. Я могу создать то же самое через Консоль AWS, но не смог сделать это через Java SDK.