{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/wavmark-watermarking-for-audio-generation","title":"WavMark: Watermarking for Audio Generation","arxiv_id":"2308.12770","date":"2023-08-24","proceeding":null,"authors":["Guangyu Chen","Yu Wu","Shujie Liu","Tao Liu","Xiaoyong Du","Furu Wei"],"abstract":"Recent breakthroughs in zero-shot voice synthesis have enabled imitating a speaker's voice using just a few seconds of recording while maintaining a high level of realism. Alongside its potential benefits, this powerful technology introduces notable risks, including voice fraud and speaker impersonation. Unlike the conventional approach of solely relying on passive methods for detecting synthetic data, watermarking presents a proactive and robust defence mechanism against these looming risks. This paper introduces an innovative audio watermarking framework that encodes up to 32 bits of watermark within a mere 1-second audio snippet. The watermark is imperceptible to human senses and exhibits strong resilience against various attacks. It can serve as an effective identifier for synthesized voices and holds potential for broader applications in audio copyright protection. Moreover, this framework boasts high flexibility, allowing for the combination of multiple watermark segments to achieve heightened robustness and expanded capacity. Utilizing 10 to 20-second audio as the host, our approach demonstrates an average Bit Error Rate (BER) of 0.48\\% across ten common attacks, a remarkable reduction of over 2800\\% in BER compared to the state-of-the-art watermarking tool. See https://aka.ms/wavmark for demos of our work.","url_abs":"https://arxiv.org/abs/2308.12770v3","url_pdf":"https://arxiv.org/pdf/2308.12770v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"wavmark-watermarking-for-audio-generation","repo_url":"https://github.com/wavmark/wavmark","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"audio-generation","task_name":"Audio Generation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2308.12770","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2308.12770"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/wavmark/wavmark","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":1,"ran_draft_wrong":1,"unverified":10},"by_repo_kind":{"listed":{"samples":12,"ran":2,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"f784b3e2f7189461","entry":"calc_ber","repo":"wavmark/wavmark","repo_kind":"listed","path":"src/wavmark/utils/metric_util.py","file_url":"https://github.com/wavmark/wavmark/blob/HEAD/src/wavmark/utils/metric_util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f784b3e2f7189461"}},{"code_sha256_prefix":"c04a23de0531da4a","entry":"make_layer","repo":"wavmark/wavmark","repo_kind":"listed","path":"src/wavmark/models/module_util.py","file_url":"https://github.com/wavmark/wavmark/blob/HEAD/src/wavmark/models/module_util.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c04a23de0531da4a"}},{"code_sha256_prefix":"0a1d489803f389d7","entry":"add_watermark","repo":"wavmark/wavmark","repo_kind":"listed","path":"src/wavmark/utils/wm_add_util.py","file_url":"https://github.com/wavmark/wavmark/blob/HEAD/src/wavmark/utils/wm_add_util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0a1d489803f389d7"}},{"code_sha256_prefix":"cf44a0ab24e3a7eb","entry":"decode_trunck","repo":"wavmark/wavmark","repo_kind":"listed","path":"src/wavmark/utils/wm_decode_util.py","file_url":"https://github.com/wavmark/wavmark/blob/HEAD/src/wavmark/utils/wm_decode_util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cf44a0ab24e3a7eb"}},{"code_sha256_prefix":"79899b433db9b9db","entry":"encode_trunck","repo":"wavmark/wavmark","repo_kind":"listed","path":"src/wavmark/utils/wm_add_util.py","file_url":"https://github.com/wavmark/wavmark/blob/HEAD/src/wavmark/utils/wm_add_util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"79899b433db9b9db"}},{"code_sha256_prefix":"0ca470ba8ff87079","entry":"encode_trunck_with_snr_check","repo":"wavmark/wavmark","repo_kind":"listed","path":"src/wavmark/utils/wm_add_util.py","file_url":"https://github.com/wavmark/wavmark/blob/HEAD/src/wavmark/utils/wm_add_util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0ca470ba8ff87079"}},{"code_sha256_prefix":"0cd869a47ff6cd14","entry":"extract_watermark_v3_batch","repo":"wavmark/wavmark","repo_kind":"listed","path":"src/wavmark/utils/wm_decode_util.py","file_url":"https://github.com/wavmark/wavmark/blob/HEAD/src/wavmark/utils/wm_decode_util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0cd869a47ff6cd14"}},{"code_sha256_prefix":"89775433724607a1","entry":"flow_warp","repo":"wavmark/wavmark","repo_kind":"listed","path":"src/wavmark/models/module_util.py","file_url":"https://github.com/wavmark/wavmark/blob/HEAD/src/wavmark/models/module_util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"89775433724607a1"}},{"code_sha256_prefix":"7fedcb3f8ef7c259","entry":"is_wav_file","repo":"wavmark/wavmark","repo_kind":"listed","path":"src/wavmark/utils/file_reader.py","file_url":"https://github.com/wavmark/wavmark/blob/HEAD/src/wavmark/utils/file_reader.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7fedcb3f8ef7c259"}},{"code_sha256_prefix":"ae5870a326883efc","entry":"parse_it","repo":"wavmark/wavmark","repo_kind":"listed","path":"src/wavmark/utils/my_parser.py","file_url":"https://github.com/wavmark/wavmark/blob/HEAD/src/wavmark/utils/my_parser.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ae5870a326883efc"}},{"code_sha256_prefix":"24bfb1e09a4a6505","entry":"signal_noise_ratio","repo":"wavmark/wavmark","repo_kind":"listed","path":"src/wavmark/utils/metric_util.py","file_url":"https://github.com/wavmark/wavmark/blob/HEAD/src/wavmark/utils/metric_util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"24bfb1e09a4a6505"}},{"code_sha256_prefix":"00f08cddc0d12321","entry":"to_equal_length","repo":"wavmark/wavmark","repo_kind":"listed","path":"src/wavmark/utils/metric_util.py","file_url":"https://github.com/wavmark/wavmark/blob/HEAD/src/wavmark/utils/metric_util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"00f08cddc0d12321"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}