{"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/daspeech-directed-acyclic-transformer-for-1","title":"DASpeech: Directed Acyclic Transformer for Fast and High-quality Speech-to-Speech Translation","arxiv_id":"2310.07403","date":"2023-10-11","proceeding":"NeurIPS 2023 11","authors":["Qingkai Fang","Yan Zhou","Yang Feng"],"abstract":"Direct speech-to-speech translation (S2ST) translates speech from one language into another using a single model. However, due to the presence of linguistic and acoustic diversity, the target speech follows a complex multimodal distribution, posing challenges to achieving both high-quality translations and fast decoding speeds for S2ST models. In this paper, we propose DASpeech, a non-autoregressive direct S2ST model which realizes both fast and high-quality S2ST. To better capture the complex distribution of the target speech, DASpeech adopts the two-pass architecture to decompose the generation process into two steps, where a linguistic decoder first generates the target text, and an acoustic decoder then generates the target speech based on the hidden states of the linguistic decoder. Specifically, we use the decoder of DA-Transformer as the linguistic decoder, and use FastSpeech 2 as the acoustic decoder. DA-Transformer models translations with a directed acyclic graph (DAG). To consider all potential paths in the DAG during training, we calculate the expected hidden states for each target token via dynamic programming, and feed them into the acoustic decoder to predict the target mel-spectrogram. During inference, we select the most probable path and take hidden states on that path as input to the acoustic decoder. Experiments on the CVSS Fr-En benchmark demonstrate that DASpeech can achieve comparable or even better performance than the state-of-the-art S2ST model Translatotron 2, while preserving up to 18.53x speedup compared to the autoregressive baseline. Compared with the previous non-autoregressive S2ST model, DASpeech does not rely on knowledge distillation and iterative decoding, achieving significant improvements in both translation quality and decoding speed. Furthermore, DASpeech shows the ability to preserve the speaker's voice of the source speech during translation.","url_abs":"https://arxiv.org/abs/2310.07403v1","url_pdf":"https://arxiv.org/pdf/2310.07403v1.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":"daspeech-directed-acyclic-transformer-for-1","repo_url":"https://github.com/ictnlp/daspeech","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"knowledge-distillation","task_name":"Knowledge Distillation"},{"task_slug":"speech-to-speech-translation","task_name":"Speech-to-Speech Translation"},{"task_slug":"translation","task_name":"Translation"},{"task_slug":"fr-en","task_name":"fr-en"}],"methods":[{"method_slug":"attention","method_name":"Attention"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"fastspeech-2","method_name":"FastSpeech 2"},{"method_slug":"knowledge-distillation","method_name":"Knowledge Distillation"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2310.07403","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.07403"}},"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/ictnlp/daspeech","reach":{"status":"ok"}}],"summary":{"ran":5,"unverified":2},"by_repo_kind":{"official":{"samples":7,"ran":5,"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":7,"samples":[{"code_sha256_prefix":"575ebd3590b18e59","entry":"get_anneal_value","repo":"ictnlp/daspeech","repo_kind":"official","path":"DASpeech/criterions/utilities.py","file_url":"https://github.com/ictnlp/daspeech/blob/HEAD/DASpeech/criterions/utilities.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"575ebd3590b18e59"}},{"code_sha256_prefix":"02e100cf1bbee4fc","entry":"logsumexp","repo":"ictnlp/daspeech","repo_kind":"official","path":"DASpeech/models/s2t_conformer_dag.py","file_url":"https://github.com/ictnlp/daspeech/blob/HEAD/DASpeech/models/s2t_conformer_dag.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"02e100cf1bbee4fc"}},{"code_sha256_prefix":"e9381609054e0e60","entry":"logsumexp_keepdim","repo":"ictnlp/daspeech","repo_kind":"official","path":"DASpeech/custom_ops/dag_loss.py","file_url":"https://github.com/ictnlp/daspeech/blob/HEAD/DASpeech/custom_ops/dag_loss.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e9381609054e0e60"}},{"code_sha256_prefix":"f70f1a0e5b315453","entry":"loop_function_noempty","repo":"ictnlp/daspeech","repo_kind":"official","path":"DASpeech/custom_ops/dag_loss.py","file_url":"https://github.com/ictnlp/daspeech/blob/HEAD/DASpeech/custom_ops/dag_loss.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f70f1a0e5b315453"}},{"code_sha256_prefix":"bcfc4f30d3191b80","entry":"parse_anneal_argument","repo":"ictnlp/daspeech","repo_kind":"official","path":"DASpeech/criterions/utilities.py","file_url":"https://github.com/ictnlp/daspeech/blob/HEAD/DASpeech/criterions/utilities.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bcfc4f30d3191b80"}},{"code_sha256_prefix":"67464c061fa09921","entry":"build_generator","repo":"ictnlp/daspeech","repo_kind":"official","path":"DASpeech/generator/generate_features.py","file_url":"https://github.com/ictnlp/daspeech/blob/HEAD/DASpeech/generator/generate_features.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"67464c061fa09921"}},{"code_sha256_prefix":"b0304b3e47607fc7","entry":"loop_function_noempty_max","repo":"ictnlp/daspeech","repo_kind":"official","path":"DASpeech/custom_ops/dag_loss.py","file_url":"https://github.com/ictnlp/daspeech/blob/HEAD/DASpeech/custom_ops/dag_loss.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b0304b3e47607fc7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}