翻訳APIの無料枠あるし、応用すれば自動で人狼の再翻訳村とかできるんじゃね?という思いつきで使ってみた
2022/5現在、月200万文字まで無料っぽい。
https://azure.microsoft.com/ja-jp/free/
ここからアカウント作成
登録完了したらクイックスタートセンターを開く
上部検索でTranslatorで検索して「Cognitive Services | Translator」を開く
いい感じに登録してキーを確認
Microsoft Translator APIを使ってみた - Qiita
Microsoft Azure Cognitive Services テキスト翻訳とは - Azure Cognitive Services | Microsoft Docs
このあたりを参考に叩けばok
情報量なさすぎるけどそのくらい簡単にできたよ、ということで。
WOLF MANSIONで翻訳者の能力を受けると、
発言した内容をランダム言語に翻訳→再度日本語訳して発言されるようにできた。
全員デフォでこの状態になる「再翻訳村」もできるなぁと思ったのだけど、
月200万文字までだとワンチャン超えそうだなと思ったので一旦封印。
あと、翻訳精度が高すぎて、昔と比べてあまり面白い文章に変わらないという難点が。
(翻訳精度高いのはいいことなんだけども)
おまけのざっくりKotlinコード
private fun fromJa(str: String, language: String): String { val builder = UriComponentsBuilder.fromUriString(baseUrl) val uri = builder.queryParam("api-version", "3.0") .queryParam("from", "ja") .queryParam("to", language) .toUriString() return call(uri, str) } private fun toJa(str: String, language: String): String { val builder = UriComponentsBuilder.fromUriString(baseUrl) val uri = builder.queryParam("api-version", "3.0") .queryParam("from", language) .queryParam("to", "ja-Jpan") .toUriString() return call(uri, str) } private fun call(uri: String, str: String): String { val requestEntity = RequestEntity .post(URI(uri)) .header("Ocp-Apim-Subscription-Key", key) .header("Ocp-Apim-Subscription-Region", "japaneast") .header("Content-Type", "application/json; charset=UTF-8") .body(listOf(TranslatorBody(str))) val restTemplate = RestTemplate() val response = restTemplate.exchange(requestEntity, Array<TranslatorResponse>::class.java) return response.body?.firstOrNull()?.translations?.firstOrNull()?.text ?: str } data class TranslatorBody( val Text: String ) @JsonIgnoreProperties(ignoreUnknown = true) data class TranslatorResponse( val translations: List<TranslatorResponseContent> ) { @JsonIgnoreProperties(ignoreUnknown = true) data class TranslatorResponseContent( val text: String ) }