{"text": "一段日语视频,识别出说了什么,只是字幕制作的第一步。人名怎么写,句子怎么断,前后一名能不能统一,往往还需要反复校对,这就是Magic想改善的地方。它的名字,来自微软的麦语音识别服务和GV模型的组合。比如这个名字,只听读音很难确定是哪两个汉字,但节目画面里,其实已经给出了答案,画面上的文字也应该成为翻译的一句。先由外部OCR读出画面文字,再交给GV这个新模型,筛选人名等有用线索,把这类筛选任务交给Jeff,也是为了控制成本,接着结合全篇字幕整理成词库,让不同批次的翻译参考同一份写法。这次对赵李加入画面线索后,译文中的同音人名就改成了人民条上的启字。画面线索帮助确定名字怎么写,而字幕什么时候出现,要靠另一层基础。这里用的是微软的语音识别服务MyASR,选择它,看中的是时间戳的准确性,以及每个词都有旗指时间。有了这些时间锚点,程序就能按停顿,标点和说话人变化,先拆成待时间的小片段,我们叫它Atom。Gemini在根据语义,决定哪些相邻片段应该合成一句。字幕的旗指时间,由程序取回首尾片段的时间,先拆,再合。模型判断怎么成句程序保留声音里的时间一句。比如改了一个人名,就可以复用前面的转录和合并结果,再根据新词库重做翻译,自动整理提供底稿,人工确认的写法优先。日常使用有图形界面,自动化可以走命令行,仓库也提供Agent skill,让智能体按说明调用同一套流程,最后可以导出日文、中文以及共用时间轴的中日双语字幕。这些分工,也是在控制整套字幕流程的成本,按目前的估算,用Mayjave处理一小时素材,整体费用可能在两元左右。用词及时间戳支撑先拆后盒,用画面线索补充词库,再通过模型分工控制成本,这就是Mayjave的思路。识别和翻译仍会出错,最后的判断留给较对的人。填写本地文件路径或视频链接,选择日文加中文,然后开始处理。完成后先检查词库,人名之外,地名写法也能统一,比如,把工程线统一成工程线,再保存并重翻。下载中日双语字幕,逐句对照校对,日文在上,中文在下,使用相同的时间轴。即便没有OCR和Jave,也可以直接用Mayjavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejave", "segments": [{"id": 0, "seek": 0, "start": 0.0, "end": 17.1, "text": "一段日语视频,识别出说了什么,只是字幕制作的第一步。人名怎么写,句子怎么断,前后一名能不能统一,往往还需要反复校对,这就是Magic想改善的地方。它的名字,来自微软的麦语音识别服务和GV模型的组合。", "tokens": [50365, 2257, 28427, 6890, 5233, 255, 40656, 39752, 11, 5233, 228, 18453, 7781, 8090, 2289, 10440, 11, 36859, 22381, 40211, 25491, 11914, 1546, 18049, 31429, 1543, 4035, 15940, 15282, 5676, 247, 11, 34592, 7626, 15282, 4307, 255, 11, 8945, 13547, 2257, 15940, 8225, 28590, 10115, 253, 2257, 11, 29510, 29510, 14852, 35748, 22138, 1787, 235, 49684, 8713, 11, 5562, 5620, 37445, 299, 7093, 34490, 5234, 226, 1546, 30146, 1543, 45224, 15940, 22381, 11, 6912, 9722, 39152, 17819, 107, 1546, 3994, 99, 5233, 255, 18034, 5233, 228, 18453, 27408, 5087, 94, 12565, 38, 53, 41908, 39823, 1546, 10115, 226, 14245, 1543, 51220], "temperature": 0, "avg_logprob": -0.08055341613959081, "compression_ratio": 1.261764705882353, "no_speech_prob": 8.860409801692004e-12}, {"id": 1, "seek": 0, "start": 18.48, "end": 28.400000000000002, "text": "比如这个名字,只听读音很难确定是哪两个汉字,但节目画面里,其实已经给出了答案,画面上的文字也应该成为翻译的一句。", "tokens": [51289, 36757, 15368, 15940, 22381, 11, 14003, 31022, 5233, 119, 18034, 4563, 46531, 38114, 106, 12088, 1541, 17028, 36257, 7549, 12800, 231, 22381, 11, 8395, 45161, 11386, 27126, 8833, 15759, 11, 41646, 49161, 23197, 7781, 2289, 28223, 28899, 11, 27126, 8833, 5708, 1546, 17174, 22381, 6404, 44297, 44646, 11336, 13992, 42716, 5233, 239, 1546, 2257, 34592, 1543, 51785], "temperature": 0, "avg_logprob": -0.08055341613959081, "compression_ratio": 1.261764705882353, "no_speech_prob": 8.860409801692004e-12}, {"id": 2, "seek": 2840, "start": 28.4, "end": 45.86, "text": "先由外部OCR读出画面文字,再交给GV这个新模型,筛选人名等有用线索,把这类筛选任务交给Jeff,也是为了控制成本,接着结合全篇字幕整理成词库,让不同批次的翻译参考同一份写法。", "tokens": [50365, 10108, 23786, 12022, 13470, 46, 18547, 5233, 119, 7781, 27126, 8833, 17174, 22381, 11, 8623, 28455, 23197, 38, 53, 15368, 12560, 41908, 39823, 11, 7973, 249, 2215, 231, 4035, 15940, 10187, 2412, 9254, 16853, 123, 7732, 95, 11, 16075, 5562, 22113, 119, 7973, 249, 2215, 231, 26443, 5087, 94, 28455, 23197, 33887, 11, 22021, 13992, 2289, 48707, 25491, 11336, 8802, 11, 14468, 20708, 45641, 14245, 11319, 20878, 229, 22381, 40211, 27662, 13876, 11336, 5233, 235, 6346, 241, 11, 33650, 47123, 3416, 117, 9487, 1546, 42716, 5233, 239, 2129, 224, 26504, 13089, 2257, 36266, 5676, 247, 11148, 1543, 51238], "temperature": 0, "avg_logprob": -0.09520803767142536, "compression_ratio": 1.2080291970802919, "no_speech_prob": 1.1669533395153309e-11}, {"id": 3, "seek": 2840, "start": 47.16, "end": 53.019999999999996, "text": "这次对赵李加入画面线索后,译文中的同音人名就改成了人民条上的启字。", "tokens": [51303, 5562, 9487, 8713, 5266, 113, 31206, 43878, 27126, 8833, 16853, 123, 7732, 95, 13547, 11, 5233, 239, 17174, 5975, 1546, 13089, 18034, 4035, 15940, 3111, 34490, 11336, 2289, 44894, 48837, 5708, 1546, 2392, 107, 22381, 1543, 51596], "temperature": 0, "avg_logprob": -0.09520803767142536, "compression_ratio": 1.2080291970802919, "no_speech_prob": 1.1669533395153309e-11}, {"id": 4, "seek": 5302, "start": 53.02, "end": 63.5, "text": "画面线索帮助确定名字怎么写,而字幕什么时候出现,要靠另一层基础。", "tokens": [50365, 27126, 8833, 16853, 123, 7732, 95, 4845, 106, 37618, 38114, 106, 12088, 15940, 22381, 15282, 5676, 247, 11, 11070, 22381, 40211, 10440, 29111, 7781, 20204, 11, 4275, 5363, 254, 22762, 2257, 9636, 224, 26008, 38114, 222, 1543, 50889], "temperature": 0, "avg_logprob": -0.07932175359418316, "compression_ratio": 1.083743842364532, "no_speech_prob": 1.7749100800212858e-11}, {"id": 5, "seek": 5302, "start": 63.78, "end": 72.46000000000001, "text": "这里用的是微软的语音识别服务MyASR,选择它,看中的是时间戳的准确性,以及每个词都有旗指时间。", "tokens": [50903, 35102, 9254, 24620, 39152, 17819, 107, 1546, 5233, 255, 18034, 5233, 228, 18453, 27408, 5087, 94, 8506, 3160, 49, 11, 2215, 231, 6852, 102, 11284, 11, 4200, 5975, 24620, 44848, 1486, 111, 1546, 6336, 228, 38114, 106, 21686, 11, 40282, 23664, 7549, 5233, 235, 48121, 4479, 245, 25922, 44848, 1543, 51337], "temperature": 0, "avg_logprob": -0.07932175359418316, "compression_ratio": 1.083743842364532, "no_speech_prob": 1.7749100800212858e-11}, {"id": 6, "seek": 7246, "start": 72.46, "end": 82.19999999999999, "text": "有了这些时间锚点,程序就能按停顿,标点和说话人变化,先拆成待时间的小片段,我们叫它Atom。", "tokens": [50365, 2412, 2289, 5562, 13824, 44848, 23049, 248, 12579, 11, 29649, 6346, 237, 3111, 8225, 26613, 36135, 10178, 123, 11, 162, 3921, 12579, 12565, 8090, 21596, 4035, 2129, 246, 23756, 11, 10108, 6852, 228, 11336, 18390, 44848, 1546, 7322, 16668, 28427, 11, 15003, 19855, 11284, 18684, 298, 1543, 50852], "temperature": 0, "avg_logprob": -0.09116099002587534, "compression_ratio": 1.2625482625482625, "no_speech_prob": 1.636811866601029e-11}, {"id": 7, "seek": 7246, "start": 83.74, "end": 87.89999999999999, "text": "Gemini在根据语义,决定哪些相邻片段应该合成一句。", "tokens": [50929, 38, 443, 3812, 3581, 31337, 26075, 106, 5233, 255, 2930, 231, 11, 5676, 111, 12088, 17028, 13824, 15106, 3023, 119, 16668, 28427, 44297, 44646, 14245, 11336, 2257, 34592, 1543, 51137], "temperature": 0, "avg_logprob": -0.09116099002587534, "compression_ratio": 1.2625482625482625, "no_speech_prob": 1.636811866601029e-11}, {"id": 8, "seek": 7246, "start": 88.17999999999999, "end": 93.28, "text": "字幕的旗指时间,由程序取回首尾片段的时间,先拆,再合。", "tokens": [51151, 22381, 40211, 1546, 4479, 245, 25922, 44848, 11, 23786, 29649, 6346, 237, 29436, 8350, 25444, 1530, 122, 16668, 28427, 1546, 44848, 11, 10108, 6852, 228, 11, 8623, 14245, 1543, 51406], "temperature": 0, "avg_logprob": -0.09116099002587534, "compression_ratio": 1.2625482625482625, "no_speech_prob": 1.636811866601029e-11}, {"id": 9, "seek": 7246, "start": 93.58, "end": 96.94, "text": "模型判断怎么成句程序保留声音里的时间一句。", "tokens": [51421, 41908, 39823, 2437, 97, 4307, 255, 15282, 11336, 34592, 29649, 6346, 237, 24302, 24456, 32045, 18034, 15759, 1546, 44848, 2257, 34592, 1543, 51589], "temperature": 0, "avg_logprob": -0.09116099002587534, "compression_ratio": 1.2625482625482625, "no_speech_prob": 1.636811866601029e-11}, {"id": 10, "seek": 9694, "start": 96.94, "end": 107.88, "text": "比如改了一个人名,就可以复用前面的转录和合并结果,再根据新词库重做翻译,自动整理提供底稿,人工确认的写法优先。", "tokens": [50365, 36757, 34490, 2289, 20182, 4035, 15940, 11, 36781, 1787, 235, 9254, 8945, 8833, 1546, 17819, 105, 7391, 243, 12565, 14245, 3509, 114, 45641, 9319, 11, 8623, 31337, 26075, 106, 12560, 5233, 235, 6346, 241, 12624, 10907, 42716, 5233, 239, 11, 9722, 34961, 27662, 13876, 20949, 3254, 249, 22816, 10415, 123, 11, 4035, 23323, 38114, 106, 7422, 97, 1546, 5676, 247, 11148, 7384, 246, 10108, 1543, 50912], "temperature": 0, "avg_logprob": -0.06014344498917863, "compression_ratio": 1.1875, "no_speech_prob": 1.533137505838056e-11}, {"id": 11, "seek": 9694, "start": 109.48, "end": 122.4, "text": "日常使用有图形界面,自动化可以走命令行,仓库也提供Agent skill,让智能体按说明调用同一套流程,最后可以导出日文、中文以及共用时间轴的中日双语字幕。", "tokens": [50992, 6890, 11279, 22982, 9254, 2412, 3919, 122, 30900, 21185, 8833, 11, 9722, 34961, 23756, 6723, 9575, 25236, 49061, 8082, 11, 1550, 241, 6346, 241, 6404, 20949, 3254, 249, 32, 6930, 5389, 11, 33650, 5094, 118, 8225, 29485, 26613, 8090, 11100, 8897, 225, 9254, 13089, 2257, 1881, 245, 27854, 29649, 11, 8661, 13547, 6723, 4510, 120, 7781, 6890, 17174, 1231, 5975, 17174, 40282, 15408, 9254, 44848, 17819, 112, 1546, 5975, 6890, 2129, 234, 5233, 255, 22381, 40211, 1543, 51638], "temperature": 0, "avg_logprob": -0.06014344498917863, "compression_ratio": 1.1875, "no_speech_prob": 1.533137505838056e-11}, {"id": 12, "seek": 12240, "start": 122.4, "end": 133.24, "text": "这些分工,也是在控制整套字幕流程的成本,按目前的估算,用Mayjave处理一小时素材,整体费用可能在两元左右。", "tokens": [50365, 5562, 13824, 6627, 23323, 11, 22021, 3581, 48707, 25491, 27662, 1881, 245, 22381, 40211, 27854, 29649, 1546, 11336, 8802, 11, 26613, 39004, 1546, 7384, 108, 19497, 11, 9254, 19533, 73, 946, 1787, 226, 13876, 2257, 7322, 15729, 37204, 4422, 238, 11, 27662, 29485, 18464, 117, 9254, 16657, 3581, 36257, 14812, 29457, 1543, 50907], "temperature": 0, "avg_logprob": -0.0989011196379966, "compression_ratio": 1.1928571428571428, "no_speech_prob": 1.6535044167209634e-11}, {"id": 13, "seek": 12240, "start": 134.62, "end": 142.6, "text": "用词及时间戳支撑先拆后盒,用画面线索补充词库,再通过模型分工控制成本,这就是Mayjave的思路。", "tokens": [50976, 9254, 5233, 235, 25703, 44848, 1486, 111, 24400, 20559, 239, 10108, 6852, 228, 13547, 5419, 240, 11, 9254, 27126, 8833, 16853, 123, 7732, 95, 9890, 98, 2347, 227, 5233, 235, 6346, 241, 11, 8623, 19550, 16866, 41908, 39823, 6627, 23323, 48707, 25491, 11336, 8802, 11, 5562, 5620, 19533, 73, 946, 1546, 8870, 24658, 1543, 51375], "temperature": 0, "avg_logprob": -0.0989011196379966, "compression_ratio": 1.1928571428571428, "no_speech_prob": 1.6535044167209634e-11}, {"id": 14, "seek": 12240, "start": 143.06, "end": 146.78, "text": "识别和翻译仍会出错,最后的判断留给较对的人。", "tokens": [51398, 5233, 228, 18453, 12565, 42716, 5233, 239, 1550, 235, 12949, 7781, 29900, 11, 8661, 13547, 1546, 2437, 97, 4307, 255, 24456, 23197, 9830, 225, 8713, 29979, 1543, 51584], "temperature": 0, "avg_logprob": -0.0989011196379966, "compression_ratio": 1.1928571428571428, "no_speech_prob": 1.6535044167209634e-11}, {"id": 15, "seek": 14678, "start": 146.78, "end": 153.5, "text": "填写本地文件路径或视频链接,选择日文加中文,然后开始处理。", "tokens": [50365, 13331, 104, 5676, 247, 8802, 10928, 17174, 20485, 24658, 2172, 226, 19780, 40656, 39752, 165, 241, 122, 14468, 11, 2215, 231, 6852, 102, 6890, 17174, 9990, 5975, 17174, 11, 26636, 45213, 1787, 226, 13876, 1543, 50701], "temperature": 0, "avg_logprob": -0.07041070678017357, "compression_ratio": 1.2479338842975207, "no_speech_prob": 1.830226595278539e-11}, {"id": 16, "seek": 14678, "start": 158.62, "end": 167.12, "text": "完成后先检查词库,人名之外,地名写法也能统一,比如,把工程线统一成工程线,再保存并重翻。", "tokens": [50957, 41509, 13547, 10108, 16407, 222, 42623, 5233, 235, 6346, 241, 11, 4035, 15940, 9574, 12022, 11, 10928, 15940, 5676, 247, 11148, 6404, 8225, 10115, 253, 2257, 11, 36757, 11, 16075, 23323, 29649, 16853, 123, 10115, 253, 2257, 11336, 23323, 29649, 16853, 123, 11, 8623, 24302, 39781, 3509, 114, 12624, 42716, 1543, 51382], "temperature": 0, "avg_logprob": -0.07041070678017357, "compression_ratio": 1.2479338842975207, "no_speech_prob": 1.830226595278539e-11}, {"id": 17, "seek": 14678, "start": 168.4, "end": 175.04, "text": "下载中日双语字幕,逐句对照校对,日文在上,中文在下,使用相同的时间轴。", "tokens": [51446, 4438, 17819, 121, 5975, 6890, 2129, 234, 5233, 255, 22381, 40211, 11, 2215, 238, 34592, 8713, 32150, 49684, 8713, 11, 6890, 17174, 3581, 5708, 11, 5975, 17174, 3581, 4438, 11, 22982, 9254, 15106, 13089, 1546, 44848, 17819, 112, 1543, 51778], "temperature": 0, "avg_logprob": -0.07041070678017357, "compression_ratio": 1.2479338842975207, "no_speech_prob": 1.830226595278539e-11}, {"id": 18, "seek": 17678, "start": 176.78, "end": 203.15, "text": "即便没有OCR和Jave,也可以直接用Mayjavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejavejave", "tokens": [50365, 39127, 27364, 17944, 46, 18547, 12565, 41, 946, 11, 47935, 43297, 9254, 19533, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946, 73, 946], "temperature": 0, "avg_logprob": -0.030698692852071583, "compression_ratio": 7.419354838709677, "no_speech_prob": 1.7497701204627347e-11}], "language": "zh"}