Fergus Henderson

Fergus Henderson

Fergus Henderson has been a software engineer at Google since 2006. He started programming as a kid in 1979, and went on to academic research in programming language design and implementation. With his PhD supervisor, he co-founded a research group at the University of Melbourne that developed the programming language Mercury. He has been a program committee member for eight international conferences, and has released over 500,000 lines of open-source code. He was a former moderator of the Usenet newsgroup comp.std.c++ and was an officially accredited “Technical Expert” for the ISO C and C++ committees. He also has over 15 years of commercial software industry experience, starting with his first full-time industry job, as a COBOL programmer (for Australian company Frontier Software) at the age of 16. He spent 2.5 years working at Galois, Inc., in Portland, Oregon, where he developed a compiler from Cryptol (a domain-specific functional programming language for cryptography) to FPGA hardware. At Google, he was one of the original developers of Blaze, a build tool now used across Google, and worked on the server-side software behind speech recognition and voice actions (before Siri!) and speech synthesis. He currently manages Google's text-to-speech engineering team, but still writes and reviews plenty of code. Software that he has written is installed on over a billion devices.
Authored Publications
Google Publications
Other Publications
Sort By
  • Title
  • Title, descending
  • Year
  • Year, descending
    Fast, Compact, and High Quality LSTM-RNN Based Statistical Parametric Speech Synthesizers for Mobile Devices
    Yannis Agiomyrgiannakis
    Niels Egberts
    Przemysław Szczepaniak
    Proc. Interspeech, San Francisco, CA, USA(2016), pp. 2273-2277
    Preview abstract Acoustic models based on long short-term memory recurrent neural network (LSTM-RNN) were applied to statistical parametric speech synthesis (SPSS) and showed significant improvements in naturalness and latency over those based on hidden Markov models (HMMs). This paper describes further optimizations of LSTM-RNN-based SPSS to deploy it to mobile devices; weight quantization, multi-frame inference, and robust inference using an ε-contaminated Gaussian loss function. Experimental results in subjective listening tests show that these optimizations can make LSTM-RNN-based SPSS comparable to HMM-based SPSS in runtime speed while maintaining naturalness. Evaluations between LSTM-RNN-based SPSS and HMM-driven unit selection speech synthesis are also presented. View details
    Accurate garbage collection in an uncooperative environment
    International Symposium on Memory Management(2002), pp. 256-263
    Compiling Mercury to High-Level C Code
    Zoltan Somogyi
    Compiler Construction, 11th International Conference, CC 2002, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2002, Grenoble, France, April 8-12, Springer, pp. 197-212
    Compiling Mercury to the .NET Common Language Runtime
    Tyson Dowd
    Peter Ross
    BABEL'01: First International Workshop on Multi-Language Infrastructure and Interoperability, Firenze, Italy, 8 September 2001
    Type Classes in Mercury
    David Jeffery
    Zoltan Somogyi
    Australian Computer Science Conference(2000), pp. 128-135
    Using impurity to create declarative interfaces in Mercury
    Tyson Dowd
    Peter Schachte
    Zoltan Somogyi
    Department of Computer Science, University of Melbourne, Melbourne, Australia
    Run Time Type Information in Mercury
    Tyson Dowd
    Zoltan Somogyi
    Thomas Conway
    David Jeffery
    International Conference on Principles and Practice of Declarative Programming(1999), pp. 224-243
    The Implementation Technology of the Mercury Debugger
    Zoltan Somogyi
    Proceedings of the 1999 International Conference on Logic Programming
    A Semantics for Imprecise Exceptions
    Simon L. Peyton Jones
    Alastair Reid
    C. A. R. Hoare
    Simon Marlow
    Programming Language Design and Implementation(1999), pp. 25-36
    Database Transactions in a Purely Declarative Logic Programming Language
    David B. Kemp
    Thomas Conway
    Evan P. Harris
    Kotagiri Ramamohanarao
    Zoltan Somogyi
    DASFAA(1997), pp. 283-292
    Status of the Mercury system
    Zoltan Somogyi
    Thomas Conway
    Proceedings of the JICSLP '96 Workshop on Parallelism and Implementation Technology for (Constraint) Logic Programming Languages, Bonn, Germany(1996), pp. 207-218
    The Execution Algorithm of Mercury, an Efficient Purely Declarative Logic Programming Language
    Zoltan Somogyi
    Thomas Conway
    Journal of Logic Programming, 29(1996), pp. 17-64
    Determinism analysis in the Mercury Compiler
    Zoltan Somogyi
    Thomas Conway
    Australian Computer Science Conference(1996), pp. 337-346
    Code Generation for Mercury
    Thomas Conway
    Zoltan Somogyi
    International Logic Programming Symposium(1995), pp. 242-256
    Mercury User's Guide
    Thomas Conway
    Zoltan Somogyi
    The University of Melbourne(1995)
    The Mercury language reference manual
    Thomas Conway
    Zoltan Somogyi
    et al
    The University of Melbourne(1995)
    Logic programming for the real world!
    Zoltan Somogyi
    Thomas Conway
    Richard O'Keefe
    Proceedings of the ILPS '95 Postconference Workshop on Visions for the Future of Logic Programming(1995)
    The Implementation of Mercury, an Efficient Purely Declarative Logic Programming Language
    Zoltan Somogyi
    Thomas Conway
    ILPS Workshop: Implementation Techniques for Logic Programming Languages(1994)
    Strong modes can change the world!
    Department of Computer Science, University of Melbourne(1992)