coding plan 的 token 用不完,翻译器给大家免费用了。 下载地址: https://higrammar.com/zh/
其实很简单的,有些词汇句子在某些翻译软件面前简直对他们比今年中国高考数学还难! 建议参考不同AI或模型结果吧!别给Google Translate 带偏了! 注:请勿对号入座,没有指任何人/事情! 1 个帖子 - 1 位参与者 阅读完整话题
日前,杭州一家名为萌小译(PettiChat)的公司推出宠物翻译器,引发网络关注。据介绍, 用户只需将该设备夹在宠物项圈上,小猫、小狗的叫声就能被“翻译”成文字,并在手机端同步生成语音聊天记录。 官方表示,萌小译宠物翻译器依托阿里云通义千问大模型技术,搭载自主研发的宠物翻译模型,并以百万级宠物声纹样本作为训练基础,可实现对宠物叫声、情绪和行为语言的识别解析。 不同于偏娱乐性质的宠物翻译软件,萌小译称其已积累数百万条宠物行为语言声纹数据, 针对宠物行为学界公认的猫狗常见情绪场景,识别准确度最高可达94.6%。 同时,该设备具备自学习进化能力,用户无需进行复杂设置,设备即可在使用过程中逐步适应宠物独特的“口音”和情绪表达习惯。 佩戴体验方面,萌小译宠物翻译器采用轻量化设计,重量仅27克,比AirPods还轻,对小型犬和猫咪也较为友好。 随着AI大模型加速落地,宠物智能硬件也开始从喂食、定位、健康监测等场景,进一步延伸到情绪识别和“语言翻译”领域。 对于养宠人士来说,这类产品能否真正读懂毛孩子,也将成为后续关注焦点。 查看评论
我们公司内部用 edge 那个做了一个翻译器,效果非常拉胯,主要是技术水平不到家;我自己有这个需求,随便搜了几个网上在线的翻译准确度上都比较差强人意; 我计划是找个听得准的,然后让豆包翻译,因为豆包的中文能力和词库最强;同事测过 Whisper 只在英语方面较强;其他语种韩语日语这些都听不准, 大家有什么推荐的软件吗,无论是一步到位的,还是多道工序的,付费也可以
我们公司内部用 edge 那个做了一个翻译器,效果非常拉胯,主要是技术水平不到家;我自己有这个需求,随便搜了几个网上在线的翻译准确度上都比较差强人意; 我计划是找个听得准的,然后让豆包翻译,因为豆包的中文能力和词库最强;同事测过 Whisper 只在英语方面较强;其他语种韩语日语这些都听不准, 大家有什么推荐的软件吗,无论是一步到位的,还是多道工序的,付费也可以
我们公司内部用 edge 那个做了一个翻译器,效果非常拉胯,主要是技术水平不到家;我自己有这个需求,随便搜了几个网上在线的翻译准确度上都比较差强人意; 我计划是找个听得准的,然后让豆包翻译,因为豆包的中文能力和词库最强;同事测过 Whisper 只在英语方面较强;其他语种韩语日语这些都听不准, 大家有什么推荐的软件吗,无论是一步到位的,还是多道工序的,付费也可以
我们公司内部用 edge 那个做了一个翻译器,效果非常拉胯,主要是技术水平不到家;我自己有这个需求,随便搜了几个网上在线的翻译准确度上都比较差强人意; 我计划是找个听得准的,然后让豆包翻译,因为豆包的中文能力和词库最强;同事测过 Whisper 只在英语方面较强;其他语种韩语日语这些都听不准, 大家有什么推荐的软件吗,无论是一步到位的,还是多道工序的,付费也可以
我们公司内部用 edge 那个做了一个翻译器,效果非常拉胯,主要是技术水平不到家;我自己有这个需求,随便搜了几个网上在线的翻译准确度上都比较差强人意; 我计划是找个听得准的,然后让豆包翻译,因为豆包的中文能力和词库最强;同事测过 Whisper 只在英语方面较强;其他语种韩语日语这些都听不准, 大家有什么推荐的软件吗,无论是一步到位的,还是多道工序的,付费也可以
由于工作需要,我经常需要使用同传,目前用下来的对比,如果有佬补充感激不尽 以下只是个人使用后的对比,针对场景主要是实时同传而且尽量免费 我目前使用过的翻译器如下,欧陆,苹果自带,豆包,谷歌翻译,元宝 欧陆词典:识别率不够好,如果有口音基本会跑偏 苹果自带:使用起来不够友好,很容易卡顿 谷歌翻译:速度比较慢,以及翻译出来的中文很离谱,完全读不顺,我有时候还要翻一下原文记录 豆包:速度可以,但是很尴尬会读出来,目前我还不知道怎么取消语音输出,还有一个问题就是无法保留原文 元宝:速度可以,翻译出来的中文也可以,目前用起来最舒服的软件,而且中英记录都会保存下来 总结: 元宝 > 豆包 >= 欧陆 > 谷歌 > 苹果 我目前还没有用过有道和亲爱的翻译官,所以无法对这2者作评价 3 个帖子 - 2 位参与者 阅读完整话题
// ==UserScript== // @name Codedex 自动翻译(Chrome Translator API / Google 降级) // @namespace https://github.com/yourname/codedex-translator // @version 5.0.0 // @description 检测到 .challenge-container 加载完毕后自动翻译,无需按钮 // @author You // @match https://www.codedex.io/* // @grant GM_xmlhttpRequest // @connect translate.googleapis.com // @run-at document-idle // ==/UserScript== (async function () { 'use strict'; const CONFIG = { sourceLang: 'en', targetLang: 'zh', targetLangGoogle: 'zh-CN', }; const SELECTORS = [ '.challenge-container h2', '.challenge-container h3', '.challenge-container p', '.challenge-container li', '.challenge-container .clone p', ]; // ─── Chrome Translator API ─────────────────────────────────────────────────── let chromeTranslator = null; async function initChromeTranslator() { if ('Translator' in self) { try { const avail = await Translator.availability({ sourceLanguage: CONFIG.sourceLang, targetLanguage: CONFIG.targetLang, }); if (avail === 'no') return false; chromeTranslator = await Translator.create({ sourceLanguage: CONFIG.sourceLang, targetLanguage: CONFIG.targetLang, }); console.log('[Codedex Translator] Chrome Translator 就绪:', avail); return true; } catch (e) { console.warn('[Codedex Translator] Chrome Translator 失败:', e); return false; } } // 旧版兼容 Chrome 138-140 if (window.ai?.translator) { try { const canDo = await window.ai.translator.canTranslate({ sourceLanguage: CONFIG.sourceLang, targetLanguage: CONFIG.targetLang, }); if (canDo === 'no') return false; chromeTranslator = await window.ai.translator.createTranslator({ sourceLanguage: CONFIG.sourceLang, targetLanguage: CONFIG.targetLang, }); if (chromeTranslator?.ready) await chromeTranslator.ready; return true; } catch (e) { console.warn('[Codedex Translator] window.ai.translator 失败:', e); return false; } } return false; } // ─── Chrome LanguageDetector ───────────────────────────────────────────────── let langDetector = null; async function initLangDetector() { if ('LanguageDetector' in self) { try { const avail = await LanguageDetector.availability(); if (avail === 'no') return; langDetector = await LanguageDetector.create(); console.log('[Codedex Translator] LanguageDetector 就绪:', avail); } catch (e) { console.warn('[Codedex Translator] LanguageDetector 初始化失败:', e); } } } // 取容器内一段代表性文本做语言检测,返回 true 表示需要翻译 async function shouldTranslate(container) { if (!langDetector) return true; // 没有检测器就默认翻译 const sample = container.innerText.trim().slice(0, 200); if (!sample) return false; try { const results = await langDetector.detect(sample); const top = results?.[0]?.detectedLanguage; console.log('[Codedex Translator] 检测语言:', top); return top === 'en'; // 只翻译英文内容 } catch { return true; } } // ─── Google Translate 降级 ─────────────────────────────────────────────────── function translateWithGoogle(text) { return new Promise((resolve) => { if (!text.trim()) return resolve(text); const url = `https://translate.googleapis.com/translate_a/single` + `?client=gtx&sl=${CONFIG.sourceLang}&tl=${CONFIG.targetLangGoogle}` + `&dt=t&q=${encodeURIComponent(text)}`; GM_xmlhttpRequest({ method: 'GET', url, onload(res) { try { const data = JSON.parse(res.responseText); resolve(data[0].filter(Boolean).map((s) => s[0]).join('') || text); } catch { resolve(text); } }, onerror() { resolve(text); }, ontimeout() { resolve(text); }, timeout: 8000, }); }); } // ─── 统一翻译 ───────────────────────────────────────────────────────────────── let mode = 'none'; async function translateText(text) { if (!text.trim()) return text; if (mode === 'chrome') { try { const res = await chromeTranslator.translate(text); if (res) return res; } catch (e) { console.warn('[Codedex Translator] Chrome 翻译单条失败,降级:', e); } } return translateWithGoogle(text); } // ─── DOM 翻译 ───────────────────────────────────────────────────────────────── const DONE = 'data-cdx-done'; const ORIG = 'data-cdx-orig'; function collectNodes() { const nodes = []; SELECTORS.forEach((sel) => document.querySelectorAll(sel).forEach((el) => { if (!el.hasAttribute(DONE) && el.innerText.trim()) nodes.push(el); }) ); return nodes; } // 收集叶子文本节点,跳过代码块 const SKIP_TAGS = new Set(['CODE', 'PRE', 'KBD', 'VAR', 'SAMP']); function collectLeafTextNodes(el) { const result = []; function walk(node) { if (node.nodeType === Node.ELEMENT_NODE && SKIP_TAGS.has(node.tagName)) return; if (node.nodeType === Node.TEXT_NODE) { if (node.textContent.trim()) result.push(node); return; } node.childNodes.forEach(walk); } walk(el); return result; } async function translateContainer(container) { const els = []; SELECTORS.forEach((sel) => container.querySelectorAll(sel).forEach((el) => { if (!el.hasAttribute(DONE) && el.innerText.trim()) els.push(el); }) ); SELECTORS.forEach((sel) => { if (container.matches?.(sel) && !container.hasAttribute(DONE) && container.innerText.trim()) els.push(container); }); if (!els.length) return; for (const el of els) { el.setAttribute(DONE, '1'); const leafNodes = collectLeafTextNodes(el); for (const textNode of leafNodes) { const orig = textNode.textContent.trim(); if (!orig) continue; const result = await translateText(orig); if (result && result !== orig) { textNode.textContent = textNode.textContent.replace(orig, result); } } } } // ─── 等待 .challenge-container 出现/内容变化后翻译 ────────────────────────── let translateTimer = null; async function maybeTranslate(container) { if (await shouldTranslate(container)) { await translateContainer(container); } } function scheduleTranslate(container) { clearTimeout(translateTimer); translateTimer = setTimeout(() => maybeTranslate(container), 300); } function waitAndTranslate() { const existing = document.querySelector('.challenge-container'); if (existing) maybeTranslate(existing); // 监听 .challenge-container 的新增 和 内部文本内容变化 const observer = new MutationObserver((mutations) => { for (const mutation of mutations) { // 新节点插入:检查是否是或包含 challenge-container for (const node of mutation.addedNodes) { if (node.nodeType !== Node.ELEMENT_NODE) continue; if (node.classList?.contains('challenge-container')) { scheduleTranslate(node); return; } const inner = node.querySelector?.('.challenge-container'); if (inner) { scheduleTranslate(inner); return; } } // 文本内容变化:如果变化发生在 challenge-container 内部 if (mutation.type === 'characterData' || mutation.type === 'childList') { const container = mutation.target.closest?.('.challenge-container') ?? (mutation.target.nodeType === Node.TEXT_NODE ? mutation.target.parentElement?.closest('.challenge-container') : null); if (container) { scheduleTranslate(container); return; } } } }); observer.observe(document.body, { childList: true, subtree: true, characterData: true, }); } // ─── 启动 ───────────────────────────────────────────────────────────────────── const ok = await initChromeTranslator(); mode = ok ? 'chrome' : 'google'; await initLangDetector(); console.log('[Codedex Translator] 模式:', mode); waitAndTranslate(); })(); 效果: 优先使用Chrome Translate API(Chrome 本地翻译)服务 其次才是Google API,所以 支持Translator API 的情况下速度更快 Enjoy it! 1 个帖子 - 1 位参与者 阅读完整话题
写这个项目差不多有一年了,现在 GitHub 上差不多有了 4K 星星了! Koharu 是用 Rust 写的漫画翻译器,内置目标识别、基于视觉 LLM 的 OCR 、结构分析、遮罩识别、图像修复模型,基于 DAG 的流水线,可以自行组合喜欢的模型。 并且内置 llama.cpp 与多种翻译 LLM ,全部本地运行,包括 Gemma4 ,Qwen3.5 的 NSFW 版本。也有调优的 Sakura 模型等。 支持翻译韩漫、日漫、美漫,翻译到任何语言! 项目地址: mayocream/koharu 欢迎大家试用!
写这个项目差不多有一年了,现在 GitHub 上差不多有了 4K 星星了! Koharu 是用 Rust 写的漫画翻译器,内置目标识别、基于视觉 LLM 的 OCR 、结构分析、遮罩识别、图像修复模型,基于 DAG 的流水线,可以自行组合喜欢的模型。 并且内置 llama.cpp 与多种翻译 LLM ,全部本地运行,包括 Gemma4 ,Qwen3.5 的 NSFW 版本。也有调优的 Sakura 模型等。 支持翻译韩漫、日漫、美漫,翻译到任何语言! 项目地址: mayocream/koharu 欢迎大家试用!
写这个项目差不多有一年了,现在 GitHub 上差不多有了 4K 星星了! Koharu 是用 Rust 写的漫画翻译器,内置目标识别、基于视觉 LLM 的 OCR 、结构分析、遮罩识别、图像修复模型,基于 DAG 的流水线,可以自行组合喜欢的模型。 并且内置 llama.cpp 与多种翻译 LLM ,全部本地运行,包括 Gemma4 ,Qwen3.5 的 NSFW 版本。也有调优的 Sakura 模型等。 支持翻译韩漫、日漫、美漫,翻译到任何语言! 项目地址: mayocream/koharu 欢迎大家试用!
写这个项目差不多有一年了,现在 GitHub 上差不多有了 4K 星星了! Koharu 是用 Rust 写的漫画翻译器,内置目标识别、基于视觉 LLM 的 OCR 、结构分析、遮罩识别、图像修复模型,基于 DAG 的流水线,可以自行组合喜欢的模型。 并且内置 llama.cpp 与多种翻译 LLM ,全部本地运行,包括 Gemma4 ,Qwen3.5 的 NSFW 版本。也有调优的 Sakura 模型等。 支持翻译韩漫、日漫、美漫,翻译到任何语言! 项目地址: mayocream/koharu 欢迎大家试用!
写这个项目差不多有一年了,现在 GitHub 上差不多有了 4K 星星了! Koharu 是用 Rust 写的漫画翻译器,内置目标识别、基于视觉 LLM 的 OCR 、结构分析、遮罩识别、图像修复模型,基于 DAG 的流水线,可以自行组合喜欢的模型。 并且内置 llama.cpp 与多种翻译 LLM ,全部本地运行,包括 Gemma4 ,Qwen3.5 的 NSFW 版本。也有调优的 Sakura 模型等。 支持翻译韩漫、日漫、美漫,翻译到任何语言! 项目地址: mayocream/koharu 欢迎大家试用!
(话题已被作者删除) 1 个帖子 - 1 位参与者 阅读完整话题
36氪获悉,宠物AI科技初创公司PettiChat于近期完成100万美元的种子轮融资。由浙大校友基金藕舫天使与华旦天使联合投资,本轮融资将主要用于动物行为世界模型的研发、高质量数据集的构建以及首款硬件产品的市场推广。 在通用人工智能(AGI)横扫人类语言世界的今天,一个被忽视的语言场景被一家初创企业投入了密切关注——那就是人类与动物之间的沟通。 长期以来,人类与宠物的互动多停留在感性猜测层面。虽然宠物市场规模巨大——据统计,2025年全球宠物市场规模预计将达到2700亿美元,且复合增长率达6.45%——但在“理解宠物真实需求”这一核心痛点上,市场仍缺乏解决方案。 PettiChat则试图通过构建“动物行为世界模型(Animal Behavior World Model)”,打破人宠之间的物种交流隔阂。 佩戴翻译器的猫 从“翻译官”到“世界模型” 不同于市面上简单的、基于娱乐性的宠物翻译软件,Pettichat的核心底层逻辑是“行为与语言的双重建模”。PettiChat认为动物的行为具有可预测的“Token”。人类拥有约860亿个神经元,而狗和猫分别拥有5.3亿和2.27亿个神经元,宠物的神经元数量远少于人类,所以它们的行为模式在物理规律和生物本能也下更具规律性。 PettiChat的核心产品架构包含三大维度: 1、 PET VOICE TRANSLATION(宠物语音翻译): 2、PET TALK CONVERSATION(宠物对话): 基于AI Agent技术,让人类的意图以声音的方式传达给宠物,实现人的语言转达为宠物的语言。 3、LOCATION & HEALTH TRACKER(位置与健康追踪): 通过穿戴设备收集多模态数据,实现行为预警与健康管理。 “我们想做的不仅仅是一个翻译器,而是动物的行为世界模型。”PettiChat创始人李景元表示,“人类已经有了语言大模型,以及基于多模态数据的世界模型。我们希望构建出动物的一套包含视觉,声音,生化信号,行为信号等的的世界模型。通过收集高质量的动物行为数据,我们可以利用更合理的物理建模架构,去预测宠物的健康和行为。” PettiChat目前推出的核心产品是一款重约27.2g的智能宠物可穿戴设备,定位为宠物界的“AI智能硬件”。该产品具备IP56级防水,采用磁吸充电,通过夹在项圈上即可便捷佩戴。主人通过配套App可实现与宠物的实时对话:当宠物发出叫声时,设备会自动录音并进行实时翻译;主人亦可通过App发送指令,由设备将其转换成宠物语言传达给宠物,从而实现人宠之间的双向沟通。 宠物语言模型 AI时代的“宠物语料库” 在AI竞争的下半场,数据的质量决定了模型的上限。PettiChat团队意识到,过去宠物识别领域之所以没有突破,是因为缺乏针对性、高质量且经过标注的动物行为数据集。 为此,PettiChat正在持续构建一套庞大的动物行为数据库,涵盖了从日常互动声音、肢体语言到异常生理状态的不同维度数据,经过专家审核的数据目前猫类数据有约89万条,犬类有约 65万条数据。通过这些“物理世界”的数据喂养,模型能够实现从“识别”到“预测”的跨越,根据PettiChat提供的数据,猫的情境声学模式测试准确率达到了94.6%,狗的准确率达到了92.3%。 同时,系统也基于AI Agent加强了动作识别和动物行为学的上下文理解能力,能更好的结合最近的互动,预判宠物的行为异常与焦虑表现等。 商业化落地:软硬结合的多维矩阵 在商业路径上,PettiChat选择了“硬件载体+订阅服务”的模式。其首款实时宠物翻译器已展开预售,产品在海外预售价为129美元,国内预售价为799元人民币。 除了C端的宠物伴侣市场,PettiChat的技术愿景还指向了更广阔的B端领域。由于其底层逻辑是建立物理世界的动物模型,该技术未来可延伸至畜牧业、野生动物保护等场景,通过监控动物的行为和情绪,提高养殖效率或实现生态预警。 目前,全球宠物配件市场规模已达585亿美元,其中可穿戴设备和智能硬件是增长非常快的细分赛道。PettiChat凭借其独创的“世界模型”理念,正试图在这一碎片化严重的市场中,建立起基于技术深度的品牌护城河。 团队核心成员均来自浙江大学计算机学院与人工智能学院。创始人李景元,浙江大学人工智能博士,是一位90后连续创业者;CTO杜稼淳拥有浙江大学学士及荷兰埃因霍温理工大学硕士学位,在阿里云拥有物联网和大模型领域8年工作经验。 投资人观点: @ 华旦天使投资 宠物经济是具有巨大潜力的新兴市场,AI最近的发展又使得宠物主与宠物的互动可以更加多样化趣味化。华旦天使投资作为投资过许多浙大优秀团队的早期科创投资机构,也很开心可以在这次的投资中支持同样来自于竺可桢学院强化班校友创业团队,共同探索这一新领域。 @ 藕舫天使 我们认为,Pettichat代表了一种新的技术范式一-用通用人工智能的方法去理解非人类智能体,这是一种可迁移可扩展且充满想象力的全新领域。不同于市面上基于规则或简单分类的宠物翻译产品Pettichat构建的宠物交互大模型采用类Transformer架构,将宠物的叫声、肢体动作、生理信号统一建模为可预测的“行为Token”,实现了从“识别"到“理解与预测"的跨越。团队在数据工程上投入扎实,积累了大量专家标注的宠物语料,模型在情境声学等任务上能够展现出商用级的准确率,这些都构成了企业的长期竞争力。